エクスポート (0) 印刷
すべて展開

Put Blob

更新日: 2014年1月

Put Blob 操作は、新規のブロック BLOB またはページ BLOB を作成するか、既存のブロック BLOB のコンテンツを更新します。

既存のブロック BLOB を更新すると、BLOB の既存のメタデータは上書きされます。部分的な更新は Put Blob ではサポートされません。既存の BLOB のコンテンツは新しい BLOB のコンテンツで上書きされます。ブロック BLOB のコンテンツの一部を更新するには、Put Block List 操作を使用します。

Put Blob を呼び出してページ BLOB を作成した場合、BLOB の初期化のみが行われます。ページ BLOB にコンテンツを追加するには、Put Page 操作を呼び出します。

Put Blob 要求の構成は次のとおりです。HTTPS が推奨されます。myaccount はストレージ アカウントの名前に置き換えます。

 

  PUT メソッド要求の URI HTTP バージョン

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

HTTP/1.1

エミューレートされたストレージ サービスに対する要求では、エミュレーターのホスト名と BLOB サービス ポートを 127.0.0.1:10000 と指定し、その後にエミューレートされたストレージ アカウント名を指定します。

 

  PUT メソッド要求の URI HTTP バージョン

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.1

ストレージ エミュレーターでは、最大 2 GB の BLOB サイズのみがサポートされます。

詳細については、「開発とテストのための Azure のストレージ エミュレーター使用」を参照してください。

次の追加パラメーターを要求の URI で指定できます。

 

Parameter 説明

timeout

省略可能。timeout パラメーターは、秒単位で表されます。詳細については、「BLOB サービス操作のタイムアウトの設定」を参照してください。

ブロック BLOB およびページ BLOB の操作に使用する必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

Authorization

必須。認証スキーム、アカウント名、および署名を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

Date またはx-ms-date

必須。要求の世界協定時刻 (UTC) を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

x-ms-version

認証されたすべての要求について必須です。この要求に使用する操作のバージョンを指定します。詳細については、「Azure ストレージ サービスのバージョン設定」を参照してください。

Content-Length

必須。要求のサイズ。

ページ BLOB の場合、Put Blob ではページ BLOB の初期化のみを行うため、このヘッダーの値は 0 に設定されます。ページ BLOB のサイズは x-ms-blob-content-length ヘッダーで指定します。すべてのコンテンツは、Put Page を呼び出してページ BLOB に書き込む必要があります。

Content-Type

省略可能。BLOB の MIME コンテンツの種類。既定の種類は application/octet-stream です。

Content-Encoding

省略可能。BLOB に適用されたコンテンツのエンコード方式を指定します。この値は BLOB リソースに対して Get Blob 操作を実行した場合にクライアントに返されます。クライアントはこの値を使用して BLOB のコンテンツをデコードできます。

Content-Language

省略可能。このリソースで使用する自然言語を指定します。

Content-MD5

省略可能。BLOB のコンテンツの MD5 ハッシュ。このハッシュは転送時の BLOB の整合性を確認するために使用します。このヘッダーを指定すると、ストレージ サービスによって、到達したハッシュと送信されたハッシュが照合されます。2 つのハッシュが一致しない場合、操作はステータス コード 400 (Bad Request) で失敗します。

2012-02-12 以降のバージョンで省略した場合、BLOB サービスでは MD5 ハッシュが生成されます。

Get Blob PropertiesGet Blob、および List Blobs の結果には MD5 ハッシュが含まれます。

Cache-Control

省略可能。BLOB サービスはこの値を格納しますが、使用または変更は行いません。

x-ms-blob-content-type

省略可能。BLOB のコンテンツの種類を設定します。

x-ms-blob-content-encoding

省略可能。BLOB のコンテンツのエンコードを設定します。

x-ms-blob-content-language

省略可能。BLOB のコンテンツの言語を設定します。

x-ms-blob-content-md5

省略可能。BLOB の MD5 ハッシュを設定します。

x-ms-blob-cache-control

省略可能。BLOB のキャッシュ制御を設定します。

x-ms-blob-type:<BlockBlob | PageBlob>

必須。作成する BLOB の種類 (ブロック BLOB またはページ BLOB) を指定します。

x-ms-meta-name:value

省略可能。BLOB にメタデータとして関連付ける名前と値のペア。

バージョン 2009-09-19 以降では、メタデータの名前は C# 識別子の名前付け規則に従う必要があります。

x-ms-lease-id:<ID>

BLOB にアクティブなリースが存在する場合は必須です。アクティブなリースが存在する BLOB に対してこの操作を実行するには、このヘッダーに有効なリース ID を指定します。

x-ms-blob-content-disposition

省略可能。BLOB の Content-Disposition ヘッダーを設定します。バージョン 2013-08-15 以降で使用できます。

Content-Disposition 応答ヘッダー フィールドは、応答ペイロードを処理する方法に関する追加情報を伝達し、追加のメタデータをアタッチするために使用することもできます。たとえば、attachment に設定した場合、ユーザー エージェントで応答を表示する代わりに、指定された BLOB 名以外のファイル名が設定された [名前を付けて保存] ダイアログ ボックスを表示することを示します。

Get Blob 操作と Get Blob Properties 操作からの応答には、content-disposition ヘッダーが含まれます。

Origin

省略可能。要求の送信元を指定します。このヘッダーが存在する場合、応答のクロス オリジン リソース共有ヘッダーになります。詳細については、「Azure ストレージ サービスでのクロス オリジン リソース共有 (CORS) のサポート」を参照してください。

x-ms-client-request-id

省略可能。Storage Analytics Logging が有効な場合に解析ログに記録される、クライアントで生成された非透過の値を 1 KB の文字制限付きで提供します。クライアント側のアクティビティとサーバーが受け取る要求を相互に関連付けるには、このヘッダーを使用することを強くお勧めします。詳細については、「Storage Analytics Logging について」および「Windows Azure のログ: ログを使用した、ストレージ要求の追跡」を参照してください。

この操作では、条件ヘッダーを使用して、指定した条件を満たした場合にのみ BLOB を書き込むこともできます。詳細については、「BLOB サービス操作の条件ヘッダーの指定」を参照してください。

ページ BLOB の操作のみを適用対象とする要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

x-ms-blob-content-length: bytes

ページ BLOB の場合は必須です。このヘッダーは、ページ BLOB の最大サイズ (最大 1 TB) を指定します。ページ BLOB のサイズは 512 バイトの境界に合わせて指定する必要があります。

このヘッダーをブロック BLOB に指定すると、BLOB サービスはステータス コード 400 (Bad Request) を返します。

x-ms-blob-sequence-number: <num>

省略可能。ページ BLOB の場合にのみ設定します。シーケンス番号は、ユーザーが要求を追跡するために使用するユーザー制御の値です。シーケンス番号の有効な値の範囲は 0 ~ 2^63 - 1 です。既定値は 0 です。

ブロック BLOB の場合、要求本文には BLOB のコンテンツが含まれます。

ページ BLOB の場合、要求本文は空です。

次の例は、ブロック BLOB を作成するための要求を示しています。

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11

Request Body:
hello world

次の要求例では、ページ BLOB を作成し、最大サイズを 1024 バイトに指定します。この場合、Put Page を呼び出してページ BLOB にコンテンツを追加する必要があります。

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

操作が正常に終了すると、ステータス コード 201 (Created) が返されます。

ステータス コードの詳細については、「ステータス コードとエラー コード」を参照してください。

この操作の応答には、次のヘッダーが含まれています。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。標準ヘッダーはすべて、HTTP/1.1 プロトコル仕様に準拠しています。

 

応答ヘッダー 説明

ETag

ETag に含まれる値は、クライアントが If-Match 要求ヘッダーを使用して、条件に基づく PUT 操作を実行するときに使用できます。要求バージョンが 2011-08-18 またはそれ以降である場合、ETag 値は引用符で囲まれます。

Last-Modified

BLOB が最後に更新された日時。日付形式は RFC 1123 に従います。詳細については、「ヘッダーにおける日付/時刻値の表現」を参照してください。

BLOB の書き込み操作 (BLOB のメタデータまたはプロパティの更新など) を行うと、BLOB の最終更新時刻が変更されます。

Content-MD5

このヘッダーはブロック BLOB 用に返されるので、クライアントはメッセージの内容の整合性を確認することができます。返される Content-MD5 の値は BLOB サービスによって計算されます。バージョン 2012-02-12 以降では、このヘッダーは、要求に Content-MD5 ヘッダーまたは x-ms-blob-content-md5 ヘッダーが含まれない場合でも返されます。

x-ms-request-id

このヘッダーは要求を一意に識別するので、要求のトラブルシューティングに使用できます。詳細については、「API 操作のトラブルシューティング」を参照してください。

x-ms-version

要求の実行に使用する BLOB サービスのバージョンを示します。このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。

Date

サービスによって生成される、応答の開始時刻を示す UTC 日付/時刻値。

Access-Control-Allow-Origin

要求に Origin ヘッダーが含まれ、照合ルールで CORS が有効な場合に返されます。このヘッダーは、一致の場合にオリジン要求ヘッダーの値を返します。

Access-Control-Expose-Headers

要求に Origin ヘッダーが含まれ、照合ルールで CORS が有効な場合に返されます。要求のクライアントや発行元に公開される応答ヘッダーの一覧を返します。

Access-Control-Allow-Credentials

要求に Origin ヘッダーが含まれ、すべてのオリジンを許可しない照合ルールで CORS が有効な場合に返されます。このヘッダーは true に設定されます。

なし。

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

この操作は、アカウント所有者と、この BLOB またはそのコンテナーに対する書き込みアクセス許可がある共有アクセス署名を持つ任意のクライアントが呼び出すことができます。

BLOB を作成する場合、ブロック BLOB またはページ BLOB を指定する必要があります。BLOB を作成した後では、削除または再作成しない限り BLOB の種類を変更できません。

新規のページ BLOB を作成するには、Put Blob を呼び出して BLOB を初期化し、最大サイズを指定します。ページ BLOB を作成する場合、要求本文にコンテンツを含めないでください。BLOB を作成した後で、Put Page を呼び出して BLOB のコンテンツを追加または変更します。

ブロック BLOB の最大アップロード サイズは 64 MB です。64 MB を超える場合は一連のブロックとしてアップロードする必要があります。詳細については、Put Block 操作および Put Block List 操作を参照してください。BLOB を一連のブロックでアップロードする場合は Put Blob を呼び出す必要があります。

64 MB を超えるブロック BLOB または 1 TB を超えるページ BLOB をアップロードしようとすると、サービスはステータス コード 413 (Request Entity Too Large) を返します。許容される最大 BLOB サイズ (バイト単位) など、エラーに関する追加情報も応答で返されます。

Put Blob を呼び出して既存の BLOB を同じ名前で上書きした場合、元の BLOB に関連付けられたスナップショットは維持されます。関連付けられたスナップショットを削除するには、Delete Blob を呼び出した後、Put Blob を呼び出して、BLOB を再作成します。

BLOB には、標準 HTTP ヘッダーに関連付けられた値の保存に使用できるカスタム プロパティがあります。カスタム プロパティはヘッダーで設定します。これらのカスタム プロパティの値を読み取る場合は Get Blob Properties を呼び出し、変更する場合は Set Blob Properties を呼び出します。カスタム プロパティ ヘッダーと対応する標準 HTTP ヘッダーを次の表に示します。

 

HTTP ヘッダー カスタム BLOB プロパティ ヘッダー

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

これらのプロパティ値を BLOB に永続化する場合のセマンティクスは次のとおりです。

  • クライアントが x-ms-blob プレフィックスでカスタム プロパティ ヘッダーを指定した場合、その値は BLOB に保存されます。

  • クライアントが標準 HTTP ヘッダーを指定し、カスタム プロパティ ヘッダーを指定しなかった場合、値は BLOB に関連付けられた、対応するカスタム プロパティに保存されます。この値を取得するには、Get Blob Properties を呼び出します。たとえば、クライアントが要求に Content-Type ヘッダーを設定した場合、その値は BLOB の x-ms-blob-content-type プロパティに保存されます。

  • クライアントが標準 HTTP ヘッダーと対応するプロパティ ヘッダーの両方を設定した場合、PUT 要求では標準 HTTP ヘッダーに指定された値が使用されますが、カスタム プロパティ ヘッダーに指定された値が BLOB に永続化され、以後の GET 要求ではこの値が返されます。

BLOB にアクティブなリースが存在する場合、クライアントが BLOB を上書きするには、要求に有効なリース ID を指定する必要があります。クライアントがリース ID を指定しなかった場合、または無効なリース ID を指定した場合、BLOB サービスはステータス コード 412 (Precondition Failed) を返します。クライアントがリース ID を指定し、BLOB にアクティブなリースが存在しない場合にも、BLOB サービスはステータス コード 412 (Precondition Failed) を返します。まだ存在していない BLOB に対してクライアントがリース ID を指定した場合、BLOB サービスはバージョン 2013-08-15 以降に対する要求に対してはステータス コード 412 (Precondition Failed) を返します。それよりも前のバージョンでは、ステータス コード 201 (Created) を返します。

アクティブなリースが存在する既存の BLOB を Put Blob 操作で上書きした場合、リースは有効期限が切れるか、解放されるまで、更新された BLOB に保持されます。

Put Blob 操作の有効期間は 1 MB あたり 10 分です。この操作にかかる時間が平均で 1 MB あたり 10 分を超えると、操作はタイムアウトします。

表示:
© 2014 Microsoft