使用应用代码管理分层存储

已完成

你可以在代码中配置和管理 Azure 存储。 这表示你可以创建自己的应用来使用存储层。

以制造公司为例,你现在想要规划如何创建一些自定义应用程序来管理文档生命周期。

在本单元中,你将比较使用几种编程环境配置以及管理存储层的方法。 你无需执行本单元中的任何步骤,因为你将在下一个单元中执行这些操作。

C# (.NET)

在项目中,使用 NuGet 导入 Azure.Storage.Blobs 包。

将以下 using 指令添加到代码:

using Azure;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

借助 Azure SDK,可以列出 blob 容器中的所有 blob 以及每个 blob 的属性,包括存储层。

以下代码演示如何在 BlobClientContianer 上使用 GetBlobsAsync 方法获取 BlobItem 对象的集合。 BlobItem 对象将 blob 的属性封装在 Azure 存储中,但不包含实际的 blob 数据。

AsyncPageable<BlobItem> blobItems = blobContainerClient.GetBlobsAsync();

await foreach (var blobItem in blobItems)
{
    Console.WriteLine($"Blob name {blobItem.Name}:   Tier {blobItem.Properties.AccessTier}");
}

如果只对单个 blob 的存储层感兴趣,并且知道该 blob 的名称,则可对 BlobClient 对象使用 GetPropertiesAsync 方法,这将返回 blob 的属性,包括存储层。

BlobClient blobClient = blobContainerClient.GetBlobClient(blobName);

Response<BlobProperties> response = await blobClient.GetPropertiesAsync();
BlobProperties blobProperties = response.Value;
string accessTier = blobProperties.AccessTier?.ToString();

Console.WriteLine($"Blob name: {blobName}  Access tier: {accessTier}");

若要以编程方式更改 blob 的存储层,请在 BlobClient 类上使用 SetAccessTier 方法。

BlobClient blobClient = blobContainerClient.GetBlobClient(blobName);
blobClient.SetAccessTier(AccessTier.Cool);

REST

REST API 支持块 Blob 上的“设置 Blob 层”操作。 此操作是 HTTP PUT 请求,格式如下:

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=tier

tier 参数为“存档”、“寒”、“冷”或“热”

若要检索的块 blob 的存储层,可使用“获取 Blob 属性”操作。 这是 HTTP HEAD 请求(不返回 blob 的内容,只返回响应标头):

https://myaccount.blob.core.windows.net/mycontainer/myblob

x-ms-access-tier 响应标头指定 blob 的存储层。