Upload Part

この操作は、進行中のマルチパートアップロードに対してパートをアップロードするものです。
この操作を行う前に、 Initiate Multipart Upload を使用してマルチパートアップロードを開始しアップロードIDを取得しておく必要があります。このアップロードIDを用いて PUT Object のようにパートをアップロードします。 また、既存のオブジェクトを1パートとして使用する場合は、 Upload Part (Copy) をご利用ください。
アップロードの際にはパートの識別子である パート番号 を指定する必要があります。 このパート番号は、マルチパートアップロードをオブジェクト化する際のパート構成の指定に使用します。 同じパート番号でアップロードした場合は上書きされますのでご注意ください。

この操作を行う利用者は、バケット所有者か対象バケットに対してバケットポリシーの dag:PutObject 権限を付与されている必要があります。
デフォルトではバケット所有者のみこの操作が許可されており、バケット所有者はバケットポリシーによって他のアカウントに権限を付与することができます。進行中のマルチパートアップロードに対してパートをアップロードするものです

 

パートのアップロードには以下の制限がありますのでご注意ください。

  • マルチパートアップロードにおけるアップロード可能なパート数の上限は 10000 までです。
  • 最後のパートを除き1つのパートのサイズは 5MB 以上でなければなりません。

 

リクエスト情報

シンタックス
PUT /{bucket name}/{object key}?partNumber={part number}&uploadId={upload ID} HTTP/1.1
Host: s3api.iot.iij.jp
Date: {date}
Content-Length: {length}
Authorization: {authorization string}

 

リクエストパラメータ

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

リクエストヘッダー 

この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。  

表. Upload Part リクエストヘッダー一覧

 

HTTPヘッダー説明必須
Content-Length

RFC 2616に準拠したリクエストボディのサイズ

  • 型:String
  • デフォルト値:なし
Content-MD5

Base64でエンコードされたRFC 1864に準拠した128ビットMD5のダイジェストメッセージ(ヘッダーなし)
送信データの保全チェックに用います。

  • 型:String
  • デフォルト値:なし
×
Expect

100-continueを使用する場合、確認の応答を受信するまで、リクエストボディを送信しません。
リクエストヘッダー部でメッセージが拒否された場合、リクエストボディを送信しません。

  • 型:String
  • デフォルト値:なし
  • 有効な値:100-continue
×
 

サーバサイド暗号化 でパートを暗号化する場合、以下のヘッダを指定します。

 

 

暗号化キーは本サービス内に保存されません。暗号化実施後に破棄します。暗号化キーはお客様が管理する必要があります。
暗号化キーが不明となった場合、オブジェクトの取得が出来なくなります。

 表. Upload Part(サーバサイド暗号化) ヘッダ一覧

名前説明必須
x-iijgio-server-side-encryption-customer-algorithmサーバサイド暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。
x-iijgio-server-side-encryption-customer-keyパートの暗号化に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーはパートの暗号化後に速やかに破棄されます。指定する暗号化キーはInitiate Multipart Uploadと同じ値である必要があります。
x-iijgio-server-side-encryption-customer-key-MD5暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。
リクエストエレメント

この操作ではリクエストエレメントは使用しません。

 

レスポンス情報

レスポンスヘッダー

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

レスポンスエレメント

この操作はレスポンスエレメントを返しません。

エラー情報

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

 表. Upload Part エラーコード一覧

 

コードステータス内容
NoSuchUpload404 Not Found
指定したマルチパートアップロードが存在しません。
無効なアップロードIDを指定したか、指定したマルチパートアップロードが既に完了または中断している可能性があります。
InvalidArgument400 Bad Request

以下のいずれかが原因です。

  • サーバサイド暗号化用のヘッダの指定に誤りがあります
  • httpsで通信をしていません
InvalidEncryptionAlgorithmError400 Bad Requestx-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。

 

サンプル 

 パート番号を 1 としてパートをアップロードする

リクエスト
PUT /mybucket/myobject?partNumber=1&uploadId=VCVsb2FkIElEIGZvciBlbZZpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZR HTTP/1.1
Host: s3api.iot.iij.jp
Date: Wed, 1 Oct 2014 00:00:00 GMT
Content-Length: 10485760
Content-MD5: pUNXr/BjKK5G2UKvaRRrOA==
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

{part data}
レスポンス
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
ETag: "b54357faf0632cce46e942fa68356b38"
Content-Length: 0
Connection: keep-alive
Server: s3api.iot.iij.jp