Skip to content

fabbbiob/FileWarehouse

Repository files navigation

FileWarehouse

FileWarehouse allows you to work with files in different storages using common interface.

Build status: AppVeyor AppVeyor

Supported storages

  • File system
  • Azure Blob storage

Stable releases

NuGet - FileWarehouse NuGet - FileWarehouse.AzureBlob NuGet - FileWarehouse.FileSystem

Latest releases

MyGet - FileWarehouse MyGet - FileWarehouse.AzureBlob MyGet - FileWarehouse.FileSystem

Installation

Use NuGet to install FileWarehouse common interfaces library to your project:

Install-Package FileWarehouse

The next step is to install required storage implementation.

  • Windows file storage:
Install-Package FileWarehouse.FileSystem
  • Azure Blob storage:
Install-Package FileWarehouse.AzureBlob

Examples

Windows

// Connect to storage and get list of containers
IStorage storage = new FileSystemStorage("path to folder");

// Create new or get existing container
IStorageContainer container = await storage.CreateOrGetContainerAsync("MyContainer", ContainerPermission.Private, failIfExists: false);

// Write content to a file
using (var memStream = new MemoryStream()) {
    using (var writer = new StreamWriter(memStream)) {
        writer.Write(content);
        writer.Flush();
        memStream.Position = 0;
    }

    await container.WriteAsync(memStream, fileName);
}

// Read file content from the container
using (Stream stream = await container.ReadAsync(fileName)) {
    var buffer = new byte[stream.Length];
    await stream.ReadAsync(buffer, 0, (int)stream.Length);
    result = Encoding.UTF8.GetString(buffer);
}

// Delete a file
await container.DeleteAsync(fileName);

// Get files list
IEnumerable<string> files = await container.GetFilesAsync("", StorageSearchOption.Default);

Azure

// Connect to Azure storage ...
IStorage storage = new AzureBlobStorage("<connection string>");

// ... and use same code as above

About

FileWarehouse allows to work with files in different storages using common interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages