Skip to content

Commit 5114ab3

Browse files
author
vp
committed
doc: list file storage providers
1 parent 7b94495 commit 5114ab3

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

docs/features-storage-files.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ Managing file storage presents challenges due to inconsistent APIs across storag
1010

1111
The `FileStorage` feature addresses these through the `IFileStorageProvider` interface for abstracting file operations, a fluent DI setup with `AddFileStorage`, and the `Result` pattern for error handling and messaging. It supports progress reporting via `IProgress<FileProgress>` and metadata management with `FileMetadata`. The feature is designed to be extensible, allowing developers to implement custom providers or extend functionality with behaviors. Additionally, it supports notifications for real-time monitoring (used by `FileMonitoring`) through the `SupportsNotifications` property. Besides the existing `WriteFileAsync` push model, the abstraction also supports `OpenWriteFileAsync` for scenarios where callers want to stream bytes directly into the destination.
1212

13+
Available providers included:
14+
- Local Files (e.g., `C:\data\file.txt` or `/var/data/file.txt`)
15+
- Network Shares (e.g., Windows UNC paths)
16+
- Azure Files
17+
- Azure Blob Storage
18+
1319
### Architecture
1420

1521
The `FileStorage` subsystem is built around the `IFileStorageProvider` interface, which defines core file operations. Providers like `LocalFileStorageProvider`, `InMemoryFileStorageProvider`, and others implement this interface. The `IFileStorageFactory` resolves providers by name, and extensions like `FileStorageProviderCompressionExtensions` and `FileStorageProviderCrossExtensions` add advanced functionality such as compression and cross-provider operations. Behaviors can be applied to providers to add cross-cutting concerns like logging or retry logic.

0 commit comments

Comments
 (0)