アプリ コードで階層型ストレージを管理する

完了

コードで Azure Storage を構成および管理できます。 つまり、独自のアプリを作成してストレージ層を活用することができます。

製造会社の例を使用して、ここではドキュメントのライフ サイクルを管理するためのカスタム アプリケーションをいくつか作成することを計画します。

このユニットでは、複数のプログラミング環境を使用して、ストレージ層を構成して管理する方法を比較します。 このユニットの手順を実行する必要はありません。これは次のユニットで行います。

C# (.NET)

プロジェクトで NuGet を使用して Azure.Storage.Blobs パッケージをインポートします。

次の using ディレクティブをコードに追加します。

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

Azure SDK を使用すると、BLOB コンテナー内のすべての BLOB を、ストレージ層を含む各 BLOB のプロパティと共に一覧表示できます。

次のコードは、BlobClientContianerGetBlobsAsync メソッドを使用し、BlobItem オブジェクトのコレクションを使用する方法を示しています。 BlobItem オブジェクトによって Azure Storage で BLOB のプロパティがカプセル化されますが、実際の BLOB データは含まれません。

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

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

1 つの 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 で Set Blob Tier 操作を提供します。 この操作は、次の形式の HTTP PUT 要求です。

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

tier パラメーターは、アーカイブコールドクール、またはホットのいずれかです。

ブロック BLOB のストレージ層を取得するには、Get Blob Properties 操作を使用します。 これは HTTP HEAD 要求です (BLOB の内容は返されず、応答ヘッダーのみが返されます)。

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

x-ms-access-tier 応答ヘッダーは BLOB のストレージ層を指定します。