Soenneker.Blob.Download
4.0.3661
Prefix Reserved
dotnet add package Soenneker.Blob.Download --version 4.0.3661
NuGet\Install-Package Soenneker.Blob.Download -Version 4.0.3661
<PackageReference Include="Soenneker.Blob.Download" Version="4.0.3661" />
<PackageVersion Include="Soenneker.Blob.Download" Version="4.0.3661" />
<PackageReference Include="Soenneker.Blob.Download" />
paket add Soenneker.Blob.Download --version 4.0.3661
#r "nuget: Soenneker.Blob.Download, 4.0.3661"
#:package Soenneker.Blob.Download@4.0.3661
#addin nuget:?package=Soenneker.Blob.Download&version=4.0.3661
#tool nuget:?package=Soenneker.Blob.Download&version=4.0.3661
Soenneker.Blob.Download
Downloads Azure blobs to temporary files, memory streams, or strings.
Installation
dotnet add package Soenneker.Blob.Download
Configuration
Provide the Azure Storage connection string through configuration:
{
"Azure": {
"Storage": {
"Blob": {
"ConnectionString": "<connection string>"
}
}
}
}
Registration
using Microsoft.Extensions.DependencyInjection;
using Soenneker.Blob.Download.Registrars;
services.AddBlobDownloadUtilAsScoped();
AddBlobDownloadUtilAsSingleton() is also available when a singleton lifetime fits the application.
Usage
using Soenneker.Blob.Download.Abstract;
public sealed class DocumentStore
{
private readonly IBlobDownloadUtil _downloads;
public DocumentStore(IBlobDownloadUtil downloads)
{
_downloads = downloads;
}
public async ValueTask<string> ReadManifest(CancellationToken cancellationToken)
{
return await _downloads.DownloadToString(
"documents",
"manifests/latest.json",
cancellationToken: cancellationToken);
}
}
Download to a temporary file when the content should not be buffered in memory:
FileInfo file = await downloads.Download(
"documents",
"exports/archive.zip",
cancellationToken: cancellationToken);
try
{
// Consume file here.
}
finally
{
file.Delete();
}
For in-memory processing, dispose the returned stream:
await using MemoryStream stream = await downloads.DownloadToMemory(
"documents",
"images/logo.png",
cancellationToken: cancellationToken);
Choosing a download method
| Method | Use it when | Ownership |
|---|---|---|
Download |
The blob may be large or a file-based API needs the result | Delete the returned temporary file |
DownloadToMemory |
A stream-based API needs reasonably sized content | Dispose the returned stream |
DownloadToString |
The blob is reasonably sized text | Returns an owned string |
Behavior
DownloadToMemoryandDownloadToStringbuffer the entire blob. PreferDownloadfor large or untrusted content.- The stream returned by
DownloadToMemoryis positioned at0. - Failed file downloads remove the incomplete temporary file when possible. Failed memory downloads dispose their stream.
- A missing blob is reported through Azure's
RequestFailedException, including a404status when returned by the service. publicAccessTypeis used only if the underlying client utility creates a missing container; it does not update an existing container's access level.- Cancellation is passed to Azure Storage and temporary resource creation.
| Product | Versions 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. |
-
net10.0
- Soenneker.Blob.Client (>= 4.0.2232)
- Soenneker.Extensions.Stream (>= 4.0.156)
- Soenneker.Extensions.ValueTask (>= 4.0.124)
- Soenneker.Utils.File (>= 4.0.2292)
- Soenneker.Utils.MemoryStream (>= 4.0.1570)
- Soenneker.Utils.Path (>= 4.0.1244)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Soenneker.Blob.Download:
| Package | Downloads |
|---|---|
|
Soenneker.Blob.Suite
A concoction of Azure Blob Storage utilities and libraries |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.3661 | 0 | 10/10/2026 |
| 4.0.3660 | 127 | 10/7/2026 |
| 4.0.3659 | 254 | 10/1/2026 |
| 4.0.3658 | 105 | 9/30/2026 |
| 4.0.3657 | 123 | 9/30/2026 |
| 4.0.3656 | 111 | 9/30/2026 |
| 4.0.3655 | 105 | 9/30/2026 |
| 4.0.3653 | 140 | 9/29/2026 |
| 4.0.3652 | 127 | 9/29/2026 |
| 4.0.3651 | 107 | 9/29/2026 |
| 4.0.3650 | 88 | 9/29/2026 |
| 4.0.3649 | 123 | 9/29/2026 |
| 4.0.3648 | 98 | 9/29/2026 |
| 4.0.3647 | 123 | 9/25/2026 |
| 4.0.3646 | 137 | 9/25/2026 |
| 4.0.3645 | 116 | 9/25/2026 |
| 4.0.3643 | 126 | 9/25/2026 |
| 4.0.3642 | 104 | 9/25/2026 |
| 4.0.3641 | 106 | 9/25/2026 |
| 4.0.3640 | 102 | 9/25/2026 |
Update dependency Soenneker.Blob.Client to 4.0.2232 (#4528)