Azure.Storage.Blobs 12.21.2
前缀已预留
请查看下方的版本列表以获取详细信息。
dotnet add package Azure.Storage.Blobs --version 12.21.2
NuGet\Install-Package Azure.Storage.Blobs -Version 12.21.2
<PackageReference Include="Azure.Storage.Blobs" Version="12.21.2" />
paket add Azure.Storage.Blobs --version 12.21.2
#r "nuget: Azure.Storage.Blobs, 12.21.2"
// Install Azure.Storage.Blobs as a Cake Addin #addin nuget:?package=Azure.Storage.Blobs&version=12.21.2 // Install Azure.Storage.Blobs as a Cake Tool #tool nuget:?package=Azure.Storage.Blobs&version=12.21.2
.NET 对 Azure 存储 Blob 的客户端库
服务器版本:2021-02-12、2020-12-06、2020-10-02、2020-08-04、2020-06-12、2020-04-08、2020-02-10、2019-12-12、2019-07-07 和 2019-02-02
Azure Blob 存储是微软的云对象存储解决方案。Blob 存储针对存储大量非结构化数据进行了优化。非结构化数据是指不遵循特定数据模型或定义的数据,如文本或二进制数据。
源代码[点击访问] | 包件(NuGet)[点击访问] | API参考文档[点击访问] | REST API文档[点击访问] | 产品文档[点击访问]
入门指南
安装包
使用NuGet[点击访问]安装Azure Storage Blobs客户端库(.NET)
dotnet add package Azure.Storage.Blobs
先决条件
要创建新的存储帐户,您可以使用Azure门户、Azure PowerShell或Azure CLI。以下是一个使用Azure CLI的示例
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
认证客户端
为了与Azure Blobs存储服务交互,您需要创建BlobServiceClient类的实例。Azure Identity库[点击访问]使为Azure SDK客户端添加Azure Active Directory认证支持变得简单。
// Create a BlobServiceClient that will authenticate through Active Directory
Uri accountUri = new Uri("https://MYSTORAGEACCOUNT.blob.core.windows.net/");
BlobServiceClient client = new BlobServiceClient(accountUri, new DefaultAzureCredential());
有关在Azure存储中启用Azure Active Directory认证的更多信息,请参阅我们的文档和示例。
关键概念
Blob存储适用于:
- 直接向浏览器提供服务或文档。
- 存储用于分布式访问的文件。
- 流式传输视频和音频。
- 写入日志文件。
- 用于备份和恢复、灾难恢复和存档的数据存储。
- 用于由本地或Azure托管服务分析的数据存储。
Blob存储提供三种类型资源:
- 通过BlobServiceClient使用的存储帐户
- 通过BlobContainerClient使用的存储帐户中的容器
- 通过BlobClient使用的容器中的blob
有关认证选项的更多信息(包括连接字符串、共享密钥、共享密钥签名、Active Directory和匿名公开访问),请参阅我们的示例。
线程安全
我们保证所有客户端实例方法都是线程安全的且相互独立 (指导方针)。这确保了重用客户端实例的建议总是安全的,即使在多线程中也是如此。
其他概念
客户端选项 | 访问响应 | 长时间运行的操作 | 处理失败 | 诊断 | 模拟 | 客户端生命周期
示例
上传blob
// Get a connection string to our Azure Storage account. You can
// obtain your connection string from the Azure Portal (click
// Access Keys under Settings in the Portal Storage account blade)
// or using the Azure CLI with:
//
// az storage account show-connection-string --name <account_name> --resource-group <resource_group>
//
// And you can provide the connection string to your application
// using an environment variable.
string connectionString = "<connection_string>";
string containerName = "sample-container";
string blobName = "sample-blob";
string filePath = "sample-file";
// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();
// Get a reference to a blob named "sample-file" in a container named "sample-container"
BlobClient blob = container.GetBlobClient(blobName);
// Upload local file
blob.Upload(filePath);
下载blob
// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";
// Download the public blob at https://aka.ms/bloburl
new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadTo(downloadPath);
Blob 列表操作
// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";
string filePath = "hello.jpg";
// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();
// Upload a few blobs so we have something to list
container.UploadBlob("first", File.OpenRead(filePath));
container.UploadBlob("second", File.OpenRead(filePath));
container.UploadBlob("third", File.OpenRead(filePath));
// Print out all the blob names
foreach (BlobItem blob in container.GetBlobs())
{
Console.WriteLine(blob.Name);
}
异步 API
我们完全支持同步和异步 API。
// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";
// Download the public MacBeth copy at https://www.gutenberg.org/cache/epub/1533/pg1533.txt
await new BlobClient(new Uri("https://www.gutenberg.org/cache/epub/1533/pg1533.txt")).DownloadToAsync(downloadPath);
故障排除
所有 Blob 服务操作在失败时,都会抛出 RequestFailedException 异常,并提供有用的 ErrorCode
错误代码。其中许多错误是可恢复的。
// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";
// Try to delete a container named "sample-container" and avoid any potential race conditions
// that might arise by checking if the container is already deleted or is in the process
// of being deleted.
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
try
{
container.Delete();
}
catch (RequestFailedException ex)
when (ex.ErrorCode == BlobErrorCode.ContainerBeingDeleted ||
ex.ErrorCode == BlobErrorCode.ContainerNotFound)
{
// Ignore any errors if the container being deleted or if it has already been deleted
}
下一步
从我们的 Blob 示例 开始
- Hello World:上传、下载和列出 blob(或异步)
- 认证:使用连接字符串、公开访问、共享密钥、共享访问签名和 Azure Active Directory 进行认证。
贡献
有关构建、测试和为该库做出贡献的详细信息,请参阅 Storage CONTRIBUTING.md。
本项目欢迎贡献和建议。大多数贡献都需要您同意 contributor license agreement (cla) 声明,您有权利并且确实授予我们使用您贡献的权利。有关详细信息,请访问cla.microsoft.com。
本项目已采用 Microsoft Open Source Code of Conduct。有关更多信息,请参阅 Code of Conduct FAQ 或通过 [email protected] 联系以获取任何附加问题或评论。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 兼容。 |
.NET Framework | net461已计算。 net462已计算。 net463已计算。 net47已计算。 net471已计算。 net472已计算。 net48已计算。 net481已计算。 |
MonoAndroid | monoandroid已计算。 |
MonoMac | monomac已计算。 |
MonoTouch | monotouch已计算。 |
Tizen | tizen40已计算。 tizen60已计算。 |
Xamarin.iOS | xamarinios已计算。 |
Xamarin.Mac | xamarinmac已计算。 |
Xamarin.TVOS | xamarintvos已计算。 |
Xamarin.WatchOS | xamarinwatchos已计算。 |
-
.NETStandard 2.0
- Azure.Storage.Common >= 12.20.1)
- System.Text.Json >= 4.7.2)
-
.NETStandard 2.1
- Azure.Storage.Common >= 12.20.1)
- System.Text.Json >= 4.7.2)
-
net6.0
- Azure.Storage.Common >= 12.20.1)
- System.Text.Json >= 4.7.2)
NuGet包 (822)
显示依赖Azure.Storage.Blobs的前5个NuGet包
包 | 下载 |
---|---|
Microsoft.Azure.WebJobs.Host.Storage 此包包含基于Azure Storage的某些WebJobs SDK组件接口的实现。更多信息,请访问https://go.microsoft.com/fwlink/?linkid=2279708。 |
|
Microsoft.Azure.DurableTask.AzureStorage Azure Storage为Durable Task框架提供的扩展。 |
|
Microsoft.Azure.WebJobs.Extensions.Storage.Blobs 该扩展添加了对Storage的支持 |
|
Azure.Extensions.AspNetCore.DataProtection.Blobs 支持Microsoft Azure Blob存储作为密钥存储(https://docs.microsoft.com/aspnet/core/security/data-protection/implementation/key-storage-providers)。 |
|
AspNetCore.HealthChecks.AzureStorage
HealthChecks.AzureStorage是Blobs、Tables和Queues的健康检查包。 |
GitHub仓库 (122)
显示依赖于Azure.Storage.Blobs的前5个最受欢迎的GitHub仓库
仓库 | 星标 |
---|---|
bitwarden/server
Bitwarden基础设施/后端(API、数据库、Docker等)。
|
|
abpframework/abp
开源Web应用程序框架,用于ASP.NET Core!提供了一项具有偏见架构的方案,可基于.NET的最佳实践构建企业软件解决方案。提供基本基础设施、横切关注点实现、启动模板、应用程序模块、UI主题、工具和文档。
|
|
dotnet/AspNetCore.Docs
ASP.NET Core文档
|
|
aspnetboilerplate/aspnetboilerplate
ASP.NET Boilerplate - Web应用程序框架
|
|
dotnet/orleans
.NET的本地球民应用程序框架
|
版本 | 下载 | 最后更新 | |
---|---|---|---|
12.22.0-beta.1 | 1,040 | 8/7/2024 | |
12.21.2 | 97,113 | 8/8/2024 | |
12.21.1 | 354,442 | 7/25/2024 | |
12.21.0 | 469,225 | 7/16/2024 | |
12.21.0-beta.1 | 10,420 | 6/11/2024 | |
12.20.0 | 5,207,157 | 5/14/2024 | |
12.20.0-beta.2 | 21,724 | 4/16/2024 | |
12.20.0-beta.1 | 178,466 | 12/5/2023 | |
12.19.1 | 21,688,720 | 11/14/2023 | |
12.19.0 | 941,931 | 11/6/2023 | |
12.19.0-beta.1 | 15,321 | 10/16/2023 | |
12.18.0 | 8,326,667 | 9/12/2023 | |
12.18.0-beta.1 | 37,222 | 8/8/2023 | |
12.17.0 | 9,472,173 | 7/11/2023 | |
12.17.0-beta.1 | 49,464 | 5/30/2023 | |
12.16.0 | 19,832,298 | 4/11/2023 | |
12.16.0-beta.1 | 9,317 | 3/28/2023 | |
12.15.1 | 3,838,659 | 3/24/2023 | |
12.15.0 | 6,406,498 | 2/22/2023 | |
12.15.0-beta.1 | 22,064 | 2/8/2023 | |
12.14.1 | 23,792,098 | 10/20/2022 | |
12.14.0 | 3,116,937 | 10/12/2022 | |
12.14.0-beta.1 | 52,087 | 8/23/2022 | |
12.13.1 | 19,189,445 | 8/23/2022 | |
12.13.0 | 18,489,904 | 7/8/2022 | |
12.13.0-beta.1 | 16,788 | 6/15/2022 | |
12.12.0 | 14,876,284 | 5/2/2022 | |
12.12.0-beta.1 | 15,908 | 4/12/2022 | |
12.11.0 | 5,977,070 | 3/10/2022 | |
12.11.0-beta.3 | 47,749 | 2/7/2022 | |
12.11.0-beta.2 | 138,318 | 11/30/2021 | |
12.11.0-beta.1 | 22,603 | 11/4/2021 | |
12.10.0 | 32,689,509 | 9/9/2021 | |
12.10.0-beta.2 | 23,606 | 7/23/2021 | |
12.10.0-beta.1 | 5,569 | 7/23/2021 | |
12.9.1 | 8,493,125 | 6/23/2021 | |
12.9.0 | 3,117,172 | 6/9/2021 | |
12.9.0-beta.4 | 143,895 | 5/12/2021 | |
12.9.0-beta.3 | 20,393 | 4/9/2021 | |
12.9.0-beta.2 | 71,777 | 3/10/2021 | |
12.9.0-beta.1 | 92,080 | 2/10/2021 | |
12.8.4 | 2,084,208 | 5/21/2021 | |
12.8.3 | 3,165,741 | 4/27/2021 | |
12.8.2 | 37,306 | 4/27/2021 | |
12.8.1 | 3,634,297 | 3/29/2021 | |
12.8.0 | 15,337,998 | 1/12/2021 | |
12.8.0-beta.1 | 49,726 | 12/7/2020 | |
12.7.0 | 8,767,522 | 11/10/2020 | |
12.7.0-preview.1 | 68,226 | 10/1/2020 | |
12.6.0 | 11,564,686 | 8/31/2020 | |
12.5.1 | 979,915 | 8/18/2020 | |
12.5.0-preview.6 | 35,929 | 7/28/2020 | |
12.5.0-preview.5 | 35,722 | 7/3/2020 | |
12.5.0-preview.4 | 6,890 | 6/19/2020 | |
12.5.0-preview.1 | 5,816 | 6/8/2020 | |
12.4.4 | 7,064,245 | 6/5/2020 | |
12.4.3 | 408,468 | 6/2/2020 | |
12.4.2 | 1,889,685 | 5/6/2020 | |
12.4.1 | 1,644,875 | 4/6/2020 | |
12.4.0 | 1,156,414 | 3/12/2020 | |
12.3.0 | 1,297,197 | 2/11/2020 | |
12.2.0 | 1,156,301 | 1/10/2020 | |
12.1.0 | 737,258 | 12/4/2019 | |
12.0.0 | 1,489,940 | 10/31/2019 | |
12.0.0-preview.4 | 6,157 | 10/10/2019 | |
12.0.0-preview.3 | 6,356 | 9/10/2019 | |
12.0.0-preview.2 | 3,305 | 8/6/2019 | |
12.0.0-preview.1 | 2,847 | 7/3/2019 | |
1.0.0-preview.1 | 5,165 | 5/7/2019 |