アプリ コードで階層型ストレージを管理する
コードで 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 のプロパティと共に一覧表示できます。
次のコードは、BlobClientContianer
で GetBlobsAsync
メソッドを使用し、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 のストレージ層を指定します。