Cloud.File.Storage.Manager.AzureBlob 4.0.0

dotnet add package Cloud.File.Storage.Manager.AzureBlob --version 4.0.0
                    
NuGet\Install-Package Cloud.File.Storage.Manager.AzureBlob -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cloud.File.Storage.Manager.AzureBlob" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cloud.File.Storage.Manager.AzureBlob" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Cloud.File.Storage.Manager.AzureBlob" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cloud.File.Storage.Manager.AzureBlob --version 4.0.0
                    
#r "nuget: Cloud.File.Storage.Manager.AzureBlob, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cloud.File.Storage.Manager.AzureBlob@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cloud.File.Storage.Manager.AzureBlob&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Cloud.File.Storage.Manager.AzureBlob&version=4.0.0
                    
Install as a Cake Tool

Cloud File Storage Manager

Provides complete implementation to handle easily cloud file storage operations like get informations about files, reading, downloadURL generation, file update, file move and delete. Primarily for Azure (Azure Blob Storage) right now.

Configuration

Let's add a section to the appsettings.json

"AzureStorageSettings": {
    // Optional - http or https, defaults to https when empty
    "Protocol": "https",
    "AccountName": "",
    "AccountKey": "",
    "ContainerName": "",
    // Optional - Leave empty to use the azure default url (<AccountName>.blob.core.windows.net), see the Url rules below
    "Url": ""
}

In the application, configure this settings part

services.AddSingleton<ICloudFileStorageManager, AzureCloudFileStorageManager>(services => new AzureCloudFileStorageManager(new AzureCloudFileStorageManagerOptions()
{
    AccountName = config.GetSection("AzureStorageSettings").GetValue<string>("AccountName"),
    AccountKey = config.GetSection("AzureStorageSettings").GetValue<string>("AccountKey"),
    ContainerName = config.GetSection("AzureStorageSettings").GetValue<string>("ContainerName"),
    Protocol = config.GetSection("AzureStorageSettings").GetValue<string>("Protocol"),
    Url = config.GetSection("AzureStorageSettings").GetValue<string>("Url")
}));  

Endpoint (Url and Protocol)

  • Protocol is http or https (case-insensitive). When empty it defaults to https; any other value is refused with an ArgumentException.
  • Url is the blob endpoint as host[:port], for example myaccount.blob.core.windows.net or blob.example.com:8443.
  • Url may start with http:// or https://; the scheme then overrides Protocol. Other schemes are refused.
  • Url may carry at most one path segment, the account name of a path-style endpoint such as Azurite: 127.0.0.1:10000/devstoreaccount1.
  • A query string (?), a fragment (#), user info (@), a backslash or more than one path segment is refused with an ArgumentException.

GetDownloadUrl / GetDownloadUrlAsync returns a SAS link signed with the account key:

  • the link is read-only,
  • the validity is capped at 7 days (a longer requested validity is shortened to 7 days),
  • on an https endpoint the link only works over https.

Listings and deletes

  • Listings return one level of the folder hierarchy: the files directly in the folder and its sub-folders, with paths relative to the root directory. Folders are reported as existing.
  • Reads, listings and deletes never create the container; it is created on the first write. A missing container lists as empty and deletes nothing.
  • Deleting a folder removes every blob under it page by page (1000 blobs per page); Delete returns false when nothing was found.
  • The root directory (the container itself or the configured RootDirectoryPath) cannot be deleted.
  • Files are stored as append blobs. Writes are not atomic: concurrent readers can observe partial content.
  • Move copies the blob server-side under a 60 second lease that is renewed while the copy runs, and gives up after 10 minutes.
  • Watch is not supported (throws NotSupportedException).

Path rules

Path segments are validated by Cloud.File.Storage.Manager.Common: empty or whitespace segments, segments made only of dots and spaces, control characters and percent-encoded separators are refused with an ArgumentException.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.0 0 10/31/2026
3.2.0 110 10/10/2026
3.1.0 363 12/10/2024
3.0.1 270 11/16/2024
3.0.0 330 2/5/2024
2.0.1 339 5/19/2023
2.0.0 299 5/19/2023
1.0.0 433 5/22/2022

- Targets .NET 10, Azure.Storage.Blobs 12.30.1
- Requires Cloud.File.Storage.Manager.Common 4.0.0