开始使用 Azure Blob 存储和 Visual Studio 连接服务 (ASP.NET Core)Get started with Azure Blob storage and Visual Studio connected services (ASP.NET Core)
提示
使用 Azure 存储资源管理器管理 Azure Blob 存储资源。 是 Microsoft 免费提供的独立应用,可用于管理 Azure Blob 存储资源。使用 Azure 存储资源管理器可以直观地创建、读取、更新和删除 Blob 容器与 Blob,以及管理对 Blob 容器和 Blob 的访问。
本文介绍通过使用 Visual Studio 中的“连接服务”功能在 ASP.NET Core 项目中创建或引用 Azure 存储帐户之后,如何开始在 Visual Studio 中使用 Azure Blob 存储。执行“连接服务”操作会安装相应的 NuGet 程序包,以访问项目中的 Azure 存储,并将存储帐户的连接字符串添加到项目配置文件中。(有关 Azure 存储的常规信息,请参阅。)
Azure Blob 存储是一项可存储大量非结构化数据的服务,用户可在世界任何地方通过 HTTP 或 HTTPS 访问这些数据。单个 Blob 可以是任意大小。Blob 可以是图像、音频和视频文件、原始数据以及文档文件等。本文介绍通过使用 Visual Studio 中的“连接服务”在 ASP.NET Core 项目中创建 Azure 存储帐户之后,如何开始使用 blob 存储。
某些 Azure 存储 API 为异步,而本文中的代码假定正在使用异步方法。有关详细信息,请参阅异步编程。
若要以编程方式访问 ASP.NET Core 项目中的 blob,需要添加以下代码(如果尚未存在):
- 添加必要的 语句:
- 获取表示存储帐户信息的
CloudStorageAccount
对象。使用下面的代码从 Azure 服务配置中获取存储连接字符串和存储帐户信息:
CloudStorageAccount storageAccount = new CloudStorageAccount(
new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(
"<storage-account-name>",
"<access-key>"), true);
- 使用
CloudBlobClient
对象获取对存储帐户中现有容器的CloudBlobContainer
引用:
// Create a blob client.
// Get a reference to a container named "mycontainer."
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
使用代码创建容器Create a container in code
还可以通过调用 CloudBlobClient
使用 CreateIfNotExistsAsync
在存储帐户中创建容器:
如果要让容器中的文件可供所有人使用,可将容器设置为公用:
await container.SetPermissionsAsync(new BlobContainerPermissions
PublicAccess = BlobContainerPublicAccessType.Blob
});
// Get a reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
// Create or overwrite the "myblob" blob with the contents of a local file
// named "myfile".
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
await blockBlob.UploadFromStreamAsync(fileStream);
}
列出容器中的 BlobList the blobs in a container
若要列出容器中的 blob,首先获取容器引用,然后调用其 ListBlobsSegmentedAsync
方法来检索其中的 blob 和/或目录。若要访问返回的 IListBlobItem
的丰富属性集和方法,请将它强制转换为 CloudBlockBlob
、 或 CloudBlobDirectory
对象。如果 blob 类型未知,可以使用类型检查来确定要将其强制转换为哪种类型。
有关列出 Blob 容器内容的其他方法,请参阅。
要下载某个 blob,请首先获取对该 blob 的引用,然后调用 DownloadToStreamAsync
方法。下面的示例使用 DownloadToStreamAsync
方法将 blob 内容传输到稍后可以另存为本地文件的流对象。
CloudBlockBlob blockBlob = container.GetBlockBlobReference("photo1.jpg");
// Save the blob contents to a file named "myfile".
using (var fileStream = System.IO.File.OpenWrite(@"path\myfile"))
{
await blockBlob.DownloadToStreamAsync(fileStream);
}
有关将 Blob 另存为文件的其他方法,请参阅快速入门:使用 .NET 上传、下载和列出 Blob。
删除 BlobDelete a blob
// Get a reference to a blob named "myblob.txt".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob.txt");
await blockBlob.DeleteAsync();
现在,已了解有关 Azure Blob 存储的基础知识,可单击下面的链接来了解更复杂的存储任务。
- 有关可用 API 的完整详细信息,请查看用于 .NET 的 Azure 存储客户端库参考中的 Blob 服务参考文档。
- 若要了解如何简化编写用于 Azure 存储的代码,请查阅
- 查看更多功能指南,以了解在 Azure 中存储数据的其他方式。
- 若要使用 Azure 存储表,请参阅 通过 .NET 开始使用 Azure 表存储。
- 若要存储关系数据,请参阅。