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>

 

リクエストパラメータ

この操作ではリクエストパラメータは使用しません。

リクエストヘッダー 

この操作では基本リクエストヘッダーのみ使用します。

リクエストエレメント

この操作では以下のリクエストエレメントを使用します。

表. Complete Multipart Upload リクエストエレメント一覧

名前説明必須
CompleteMultipartUpload

リクエストのルート要素となるコンテナ

  • 型:Container
  • 親:なし
Part

以降のパート情報の要素を含むコンテナ

  • 型:Container
  • 親:CompleteMultipartUpload
PartNumber

パートの識別子である番号

  • 型:Integer
  • 親:Part
ETag

アップロード時に得られたETagの値

  • 型:String
  • 親:Part

 

レスポンス情報

レスポンスヘッダー

この操作では基本レスポンスヘッダーを返します。

レスポンスエレメント

この操作では以下のレスポンスエレメントを返します。

Complete Multipart Upload レスポンスエレメント一覧

名前説明
CompleteMultipartUploadResult

レスポンスのルート要素となるコンテナ

  • 型:Container
  • 親:なし
Location

生成された新しいオブジェクトの識別子であるURI

  • 型:URI
  • 親:CompleteMultipartUploadResult
Bucket

生成された新しいオブジェクトが属するバケットの名前

  • 型:String
  • 親:CompleteMultipartUploadResult
Key

生成された新しいオブジェクトのオブジェクトキー

  • 型:String
  • 親:CompleteMultipartUploadResult
ETag

生成された新しいオブジェクトのETag

  • 型:String
  • 親:CompleteMultipartUploadResult

 

エラー情報

この操作は共通のエラーレスポンスに加え、以下のエラーを返します。 

表. Complete Multipart Upload エラーコード一覧

コードステータス内容
InvalidPart400 Bad Request
指定したパートが存在しないか、リクエストに指定したパートのETagが一致しません。
InvalidPartOrder400 Bad Request
リクエストで指定したパートのリストが昇順になっていません。指定するパートのリストはパート番号が昇順になっていなければなりません。
EntityTooSmall400 Bad Request
パートのサイズが小さ過ぎます。最後のパート以外はパートのサイズが 5MB 以上でなければなりません。
NoSuchUpload404 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>