Initiate Multipart Upload

この操作は、マルチパートアップロード開始に際して初期化を行います。初期化の結果としてアップロードIDが払い出されますので、このアップロードIDを指定し PUT Part (もしくは PUT Part (Copy) )を使用してパートをアップロードします。
また、開始したマルチパートアップロードを完了もしくは中止する際にもこのアップロードIDを使用します。
この操作を行う利用者は、バケット所有者か対象バケットに対してバケットポリシーの dag:PutObject 権限を付与されている必要があります。
デフォルトではバケット所有者のみこの操作が許可されており、バケット所有者はバケットポリシーによって他のアカウントに権限を付与することができます。

 

リクエスト情報

シンタックス
POST /{bucket name}/{object key}?uploads HTTP/1.1
Host: s3api.iot.iij.jp
Date: {date}
Authorization: {authorization string}

 

リクエストパラメータ

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

リクエストヘッダー

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

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

HTTPヘッダー説明必須
Cache-Control

キャッシュの振る舞いの指定
詳しい情報についてはrfc2616#sec14.9 をご覧ください。

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

オブジェクトのプレゼンテーショナルな情報の指定
詳しい情報については rfc2616#sec19.5.1 をご覧ください。

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

コンテンツのエンコード方式

詳しい情報については rfc2616#src14.11 をご覧ください。

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

有効期限ミリ秒で指定します。

  • 型:Integer
  • デフォルト値:なし
×
x-iijgio-acl

ACLの設定

  • 型:String
  • 有効な値:private | public-read | public-read-write | bucket-owner-read | bucket-owner-full-control
  • デフォルト値:private
×
x-iijgio-meta-

ユーザーメタデータ

この接頭辞で始まる全てのヘッダーがユーザーメタデータであるとみなされます。このユーザーメタデータはオブジェクトと共に格納され、オブジェクト取得時に返されます。HTTPリクエストの合計サイズ(ボディを含まない)は8KB以下でなければなりません。

  • 型:String
  • デフォルト値:なし
×
x-iijgio-storage-class

マルチパートアップロード成功時のオブジェクトを格納するストレージの種別

本サービスでは STANDARD のみ選択可能です。

  • 型:String
  • デフォルト値:STANDARD
  • 有効な値:STANDARD
×

 

サーバサイド暗号化 でオブジェクトを暗号化する場合、以下のヘッダを指定します。 本APIで指定した暗号化キーと、Upload Part で指定される暗号化キーは同じものを指定する必要があります。

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

表. サーバサイド暗号化 ヘッダ一覧

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

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

 

レスポンス情報

レスポンスヘッダー

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

レスポンスエレメント

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

. Initiate Multipart Upload レスポンスエレメント一覧

名前説明
InitiateMultipartUploadResult

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

  • 型:Container
  • 親:なし
Bucket

開始したマルチパートアップロードのバケット名

  • 型:String
  • 親:InitiateMultipartUploadResult
Key

開始したマルチパートアップロードのオブジェクトキー

  • 型:String
  • 親:InitiateMultipartUploadResult
UploadId

開始したマルチパートアップロードの識別子

  • 型:String
  • 親:InitiateMultipartUploadResult
エラー情報

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

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

コードステータス内容
InvalidArgument400 Bad Request

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

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

 

サンプル 

オブジェクト myobject としてマルチパートアップロードを開始するサンプル

リクエスト
POST /mybucket/myobject?uploads HTTP/1.1
Host: s3api.iot.iij.jp
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: {authorization string}
レスポンス
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
Content-Length: 197
Connection: keep-alive
Server: s3api.iot.iij.jp

<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/">
  <Bucket>mybucket</Bucket>
  <Key>myobject</Key>
  <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
</InitiateMultipartUploadResult>