您的位置:

Azure Blob 存储

Azure Blob 存储是用于大量存储非结构化数据(例如文本数据或二进制数据)的 Microsoft 应用程序存储解决方案。Azure Blob 存储适用于存储任何类型的文本或二进制数据,例如:

  • 图片和视频文件
  • Web 应用程序生成的日志文件
  • 传感器生成的数据流
  • 静态网站的内容(例如 HTML 和 JavaScript 文件)

一、Azure Blob 存储连接

1、获取 Azure Blob 存储连接字符串

要在代码中访问 Azure Blob 存储,需要使用连接字符串。可以通过以下步骤来获取连接字符串:

  1. 在 Azure 门户中,转到存储帐户。
  2. 单击“访问密钥”,然后复制“连接字符串”。

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("连接字符串");

2、创建 Blob 客户端对象

要访问 Blob 存储,需要使用 CloudBlobClient 对象。可以使用以下代码创建 CloudBlobClient 对象:


CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

3、获取 Blob 容器引用

Blob 容器是 Blob 存储中的逻辑容器,可用于组织 Blob。可以使用以下代码获取 Blob 容器的引用:


CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");

二、Azure Blob 存储操作

1、上传 Blob

可以使用 CloudBlockBlob 对象的 UploadFromStreamAsync 方法将文件上传到 Blob 存储中:


CloudBlockBlob blob = container.GetBlockBlobReference("myblob");
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes("blob 理论大小")))
{
    await blob.UploadFromStreamAsync(stream);
}

2、下载 Blob

可以使用 CloudBlockBlob 对象的 DownloadToStreamAsync 方法将文件从 Blob 存储下载到流中:


CloudBlockBlob blob = container.GetBlockBlobReference("myblob");
using (var stream = new MemoryStream())
{
    await blob.DownloadToStreamAsync(stream);
    var content = Encoding.UTF8.GetString(stream.ToArray());
}

3、删除 Blob

可以使用 CloudBlockBlob 对象的 DeleteIfExistsAsync 方法删除 Blob:


CloudBlockBlob blob = container.GetBlockBlobReference("myblob");
await blob.DeleteIfExistsAsync();

4、列举 Blob

可以使用 CloudBlobContainer 对象的 ListBlobsSegmentedAsync 方法列举 Blob 容器中的所有 Blob:


BlobContinuationToken continuationToken = null;
do
{
    var resultSegment = await container.ListBlobsSegmentedAsync(null, continuationToken);
    continuationToken = resultSegment.ContinuationToken;
    foreach (IListBlobItem item in resultSegment.Results)
    {
        if (item is CloudBlockBlob blob)
        {
            // Process the block blob.
        }
    }
} while (continuationToken != null);

三、Azure Blob 存储时长

1、上传 Blob 时间

上传 Blob 的时间取决于文件的大小和上传的带宽。

2、下载 Blob 时间

下载 Blob 的时间取决于 Blob 的大小和下载的带宽。

3、删除 Blob 时间

删除 Blob 的时间取决于容器中 Blob 的数量和删除操作的时间。