Complete Multipart Upload
この操作は、マルチパートアップロードを完了するための操作です。
この操作を行うには、 Initiate Multipart Upload を使用してマルチパートアップロードを開始し、1つ以上のパートをアップロードしておく必要があります。 この状態で、オブジェクトを構成するパートを指定し、本操作を行うことで新たにオブジェクトが生成されます。
マルチパートアップロードの完了後は、そのマルチパートアップロードとそれに属する全てのパートは解放されますのでご注意ください。
この操作を行う利用者は、バケット所有者か対象バケットに対してバケットポリシーの dag:PutObject 権限を付与されている必要があります。
デフォルトではバケット所有者のみこの操作が許可されており、バケット所有者はバケットポリシーによって他のアカウントに権限を付与することができます。
リクエスト情報
シンタックス
POST /{bucket name}/{object key}?uploadId={upload ID} HTTP/1.1 Host: s3api.iot.iij.jp Date: {date} Content-Length: {length} Authorization: {authorization string} <CompleteMultipartUpload> <Part> <PartNumber>{part number}</PartNumber> <ETag>{ETag of part}</ETag> </Part> ... </CompleteMultipartUpload>
リクエストパラメータ
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント
この操作では以下のリクエストエレメントを使用します。
名前 | 説明 | 必須 |
---|---|---|
CompleteMultipartUpload | リクエストのルート要素となるコンテナ
| ○ |
Part | 以降のパート情報の要素を含むコンテナ
| ○ |
PartNumber | パートの識別子である番号
| ○ |
ETag | アップロード時に得られたETagの値
| ○ |
レスポンス情報
レスポンスヘッダー
この操作では基本レスポンスヘッダーを返します。
レスポンスエレメント
この操作では以下のレスポンスエレメントを返します。
名前 | 説明 |
---|---|
CompleteMultipartUploadResult | レスポンスのルート要素となるコンテナ
|
Location | 生成された新しいオブジェクトの識別子であるURI
|
Bucket | 生成された新しいオブジェクトが属するバケットの名前
|
Key | 生成された新しいオブジェクトのオブジェクトキー
|
ETag | 生成された新しいオブジェクトのETag
|
エラー情報
この操作は共通のエラーレスポンスに加え、以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidPart | 400 Bad Request | 指定したパートが存在しないか、リクエストに指定したパートのETagが一致しません。 |
InvalidPartOrder | 400 Bad Request | リクエストで指定したパートのリストが昇順になっていません。指定するパートのリストはパート番号が昇順になっていなければなりません。 |
EntityTooSmall | 400 Bad Request | パートのサイズが小さ過ぎます。最後のパート以外はパートのサイズが 5MB 以上でなければなりません。 |
NoSuchUpload | 404 Not Found | 指定したマルチパートアップロードが存在しません。 無効なアップロードIDを指定したか、指定したマルチパートアップロードが既に完了または中断している可能性あります。 |
サンプル
3つのパートを指定して Complete Multipart Upload リクエストを送るサンプル
リクエスト
POST /mybucket/myobject?uploadId=AAAsb2FkIElEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIRRwbG9hZA HTTP/1.1 Host: s3api.iot.iij.jp Date: Wed, 1 Oct 2014 00:00:00 GMT Content-Length: 391 Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= <CompleteMultipartUpload> <Part> <PartNumber>1</PartNumber> <ETag>"a54357aff0632cce46d942af68356b38"</ETag> </Part> <Part> <PartNumber>2</PartNumber> <ETag>"0c78aef83f66abc1fa1e8477f296d394"</ETag> </Part> <Part> <PartNumber>3</PartNumber> <ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag> </Part> </CompleteMultipartUpload>
レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 Date: Wed, 1 Oct 2014 00:00:00 GMT Connection: close Server: s3api.iot.iij.jp <?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUploadResult xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/"> <Location>http://s3api.iot.iij.jp/mybucket/myobject</Location> <Bucket>mybucket</Bucket> <Key>myobject</Key> <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag> </CompleteMultipartUploadResult>