Azure Storage のバージョン管理
Azure Storage では、複数のバージョンがサポートされています。 ストレージ サービスに対して要求を行うには、要求が匿名でない限り、その操作に使用するバージョンを指定する必要があります。
Azure Storage サービスの現在のバージョンは 2021-12-02 です。可能な場合は使用することをお勧めします。 サポートされている他のすべてのバージョンの一覧と、各バージョンの使用については、「 以前の Azure Storage サービスのバージョン」を参照してください。
2021-12-02 サービス バージョンには、次の機能が含まれています。
- BLOB 層の設定を使用して BLOB のアクセス層を に
Cold
設定する機能。 - XML で無効な文字 (具体的には U+FFFE または U+FFFF) を含むすべての 、
Name
Directory
、、Prefix
またはDirectoryPath
要素の値が、ディレクトリとファイルのパーセントエンコード (RFC 2396 ごと)File
Name
されるようになりました。 - リスト ハンドル は、XML で無効な文字 (具体的には U+FFFE または U+FFFF) を含むすべての要素値をパーセントエンコード (RFC 2396 ごと)
Path
するようになりました。
要求でサービスのバージョンを指定する
要求に使用するストレージ サービスのバージョンを指定する方法は、その要求の承認方法に関連します。 次のセクションでは、承認オプションと、それぞれのサービス バージョンを指定する方法について説明します。
Azure Active Directory (Azure AD) からの OAuth 2.0 トークンを使用する要求: Azure AD で要求を承認するには、2017-11-09 以降のサービス バージョンで要求にヘッダーを渡します
x-ms-version
。 詳細については、「Azure Active Directory で承認する」の「OAuth トークンを使用してストレージ操作を呼び出す」を参照してください。共有キーまたは共有キー Lite を使用する要求: 共有キーまたは共有キー Lite で要求を承認するには、要求にヘッダーを
x-ms-version
渡します。 Azure Blob Storageの場合は、Set Blob Service Properties を呼び出すことによって、すべての要求の既定のバージョンを指定できます。共有アクセス署名 (SAS) を使用する要求: 共有アクセス署名に 2 つのバージョン管理オプションを指定できます。 省略可能な
api-version
ヘッダーは、API 操作の実行に使用するサービス バージョンを示します。 必須SignedVersion (sv)
パラメーターは、SAS で行われた要求を承認するために使用するサービス バージョンを指定します。 ヘッダーがapi-version
指定されていない場合、 パラメーターのSignedVersion (sv)
値は、API 操作の実行に使用するバージョンも示します。匿名アクセスを使用する要求: Blob Storage に対する匿名アクセスの場合、バージョンは渡されません。 要求に使用するバージョンを決定するためのヒューリスティックについては、次のセクションで説明します。
Azure AD、共有キー、または共有キー Lite を使用して要求を承認する
Azure AD、共有キー、または共有キー Lite を使用して要求を承認するには、要求の x-ms-version
ヘッダーを指定します。 x-ms-version
要求ヘッダーの値は YYYY-MM-DD 形式で指定する必要があります。 次に例を示します。
Request Headers:
x-ms-version: 2020-04-08
次の規則では、これらの要求を評価して、要求の処理に使用するバージョンを決定する方法について説明します。
要求に有効な
x-ms-version
ヘッダーがある場合、指定されたバージョンがストレージ サービスによって使用されます。 共有アクセス署名を使用しない Azure Table Storage と Azure Queue Storage に対するすべての要求では、ヘッダーを指定するx-ms-version
必要があります。 次の段落で説明するように、既定のバージョンが設定されていない限り、共有アクセス署名をx-ms-version
使用しない Blob Storage に対するすべての要求でヘッダーを指定する必要があります。Blob Storage への要求にヘッダーがない
x-ms-version
が、アカウント所有者が Blob Service プロパティ の設定操作を使用して既定のバージョンを設定した場合、指定された既定のバージョンが要求のバージョンとして使用されます。
共有アクセス署名を使用して要求を承認する
バージョン 2014-02-14 以降を使用して生成される Shared Access Signature (SAS) では、次の 2 つのバージョン管理オプションがサポートされています。
クエリ パラメーターは
api-version
、SAS を使用して行われた要求の処理に使用する REST プロトコルのバージョンを定義します。クエリ パラメーターは
SignedVersion (sv)
、承認に使用する SAS バージョンを定義します。
クエリ パラメーターは SignedVersion
、クライアントが SAS を使用して要求を行うときに、承認に使用されます。 、 などのsi
sp
srk
epk
sr
st
erk
sig
se
tn
spk
承認パラメーターはすべて、指定されたバージョンを使用して解釈されます。
、、rsce
、rscl
rsct
、 などの rscc
rscd
REST プロトコル パラメーターは、パラメーター ヘッダーで提供されているバージョンをapi-version
使用して適用されます。 ヘッダーが api-version
指定されていない場合は、 に指定 SignedVersion
されたサービス バージョンが使用されます。
パラメーターは api-version
、 サービス SAS の作成に関するページで説明されているように、承認ヘッダーの文字列からサインインへの一部ではありません。
次の表では、パラメーターがバージョン 2014-02-14 以降に設定されている場合 SignedVersion
に、承認と REST プロトコルの呼び出しのためにサービスによって使用されるバージョン管理スキームについて説明します。
api-version パラメーターの値 | 承認に使用されるバージョン | プロトコル動作に使用されるバージョン |
---|---|---|
指定なし | sv パラメーターに指定されたバージョン |
sv パラメーターに指定されたバージョン |
XXXX-XX-XX という形式の有効なストレージ サービスのバージョン |
sv パラメーターに指定されたバージョン |
有効なストレージ サービスのバージョン XXXX-XX-XX |
例 1
次のサンプル要求では、 パラメーターを指定せずに、 を使用して sv=2015-04-05
BLOB の一覧表示をapi-version
呼び出します。
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d
この場合、サービスは、バージョン 2015-04-05 を使用して要求を認証および承認し、バージョン 2015-04-05 を使用して操作を実行します。
例 2
次のサンプル要求では、 パラメーターと パラメーターを使用して api-version
sv=2015-04-05
List BLOB を呼び出します。
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d&api-version=2012-02-12
ここでは、サービスはバージョン 2015-04-05 を使用して要求を承認し、バージョン 2012-02-12 を使用して操作を実行します。
注意
.NET Storage クライアント ライブラリでは、常に REST プロトコルのバージョン (パラメーター内 api-version
) が基になっているバージョンに設定されます。
匿名アクセスによる要求
匿名アクセスを介して行われた要求は、処理対象のストレージ アカウントの種類に応じて異なる方法で処理されます。
汎用ストレージ アカウントの場合
汎用ストレージ アカウントに対する匿名要求でヘッダーが指定 x-ms-version
されておらず、[ Blob Service プロパティの設定] を使用してサービスの既定のバージョンが設定されていない場合、サービスは可能な限り早いバージョンを使用して要求を処理します。 ただし、バージョン 2009-09-19 以降を使用して実行された Set Container ACL 操作でコンテナーがパブリックになった場合、要求はバージョン 2009-09-19 を使用して処理されます。
Blob Storage アカウントの場合
Blob Storage アカウントに対する匿名要求でヘッダーが指定 x-ms-version
されておらず、Blob Service プロパティの設定を使用してサービスの既定のバージョンが設定されていない場合、サービスは可能な限り早いバージョンを使用して要求を処理します。 Blob Storage アカウントの場合、可能な最も古いバージョンは 2014-02-14 です。