List Parts

指定の進行中のマルチパートアップロードに対してアップロードした全てのパートをリストで返します。

この操作を行うには、リクエストに進行中のマルチパートアップロードのアップロードIDをリクエストパラメータに指定する必要があります。

この操作は、GET Bucket (List Objects)と同様のページング機能をサポートしています。パートの一覧は最大1000件返すことができ、max-partsパラメータを変更することでリストに含まれるパートの最大件数を変更することができます(デフォルトは1000件です)。もしリクエストに該当するパートの件数が最大件数を越える場合には、リストが部分的なものであることを示すIsTruncated要素の値をtrueにしてレスポンスを返します。部分的なリストの場合にはpart-number-markerを指定し、次のリストを取得することができます。

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

リクエスト情報

シンタックス

GET /{object key}?uploadId={upload ID} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}

リクエストパラメータ

この操作では以下のリクエストパラメータを使用します。

表. List Parts リクエストパラメータ一覧
名前 説明 必須
uploadId
パートの一覧を取得するマルチパートアップロードのアップロードID
型:String
max-parts
レスポンスに含めるパートの最大件数

条件に一致するマルチパートアップロードのパートがmax-partsに満たない場合は、一致する全てのマルチパートアップロードのパートを返します。また、max-partsより多くのパートが一致した場合は、レスポンスエレメントのIsTruncatedに真をセットし、 パート番号で辞書順にソートしたパートのリストからmax-partsの件数分のパートを返します。

型:Integer
デフォルト値:1000
×
part-number-marker
リストの開始位置となるパート番号

パート番号を辞書順で並べてこの指定値より後のパートをリストに含めます。(指定したパート番号と同名のパートは含まれません)。

型:String
×

リクエストヘッダー

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

リクエストエレメント

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

レスポンス情報

レスポンスヘッダー

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

レスポンスエレメント

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

表. List Parts レスポンスエレメント一覧
名前 説明
ListPartsResult
レスポンスのルート要素となるコンテナ
型:Container
親:なし
Bucket
マルチパートアップロードの開始時に指定したバケット名
型:String
親:ListPartsResult
Key
マルチパートアップロードの開始時に指定したオブジェクトキー
型:String
親:ListPartsResult
UploadId
マルチパートアップロードの識別子

リクエストでupload-id-markerに指定した値です。

型:String
親:ListPartsResult
MaxParts
レスポンスに含まれるパートのリストの最大件数

リクエストでmax-keysに指定した値です。

型:Integer
親:ListPartsResult
PartNumberMarker
レスポンスに含まれるパートのリストが部分的なものだった場合に、ページングで次の一覧の開始位置を指定するパート番号のマーカー
型:String
親:ListPartsResult
IsTruncated
パートのリストが部分的なものかどうか
この値が true の場合、レスポンスに含まれるパートのリストは部分的なものであり、 MaxParts 以上に存在することを意味します。
以降の結果を取得するには、 NextPartNumberMarkerPartNumberMarker に指定して再び List Multipart Upload をリクエストしてください。
型:Boolean
親:ListPartsResult
StorageClass
ストレージのクラス

本サービスでは常にSTANDARDを返します。

型:String
親:ListPartsResult
Initiator
マルチパートアップロードを開始したユーザ情報を含むコンテナ
型:Container
親:ListPartsResult
Part
マルチパートアップロードのパートに関連する要素を含むコンテナ
型:String
親:ListPartsResult
PartNumber
パートの識別子となるパート番号
型:String
親:Part
LastModified
パートをアップロードした日時
型:String
親:Part
ETag
パートのMD5のハッシュ値
型:Container
親:Part
Size
パートのファイルサイズ
型:Container
親:Part
ID
アカウントの識別子
型:Container
親:Initiator, Owner
DisplayName
アカウントの表示名
型:Container
親:Initiator, Owner
Owner
オブジェクト所有者の情報を含むコンテナ
型:Container
親:Upload

エラー情報

この操作は共通のエラーレスポンスを返します。詳しくはエラーコード一覧をご覧ください。

サンプル

パート番号1より後のパートのリストを最大2件取得する

リクエスト

GET /myobject?uploadId=y0cHiwKZjrrJZBC3qyClgpfMPjowQTVcbLRFMafoHCnJHAL&max-parts=2&part-number-marker=1 HTTP/1.1
Host: mybucket.storage-dag.iijgio.com
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

レスポンス

以下のレスポンスでは、進行中のマルチパートアップロードが2件以上存在するため、部分的な一覧(IsTruncated = true)として返ってきています。

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: 1330
Connection: keep-alive
Server: storage-dag.iijgio.com

<?xml version="1.0" encoding="UTF-8"?>
<ListPartsResult xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/">
  <Bucket>mybucket</Bucket>
  <Key>myobject</Key>
  <UploadId>y0cHiwKZjrrJZBC3qyClgpfMPjowQTVcbLRFMafoHCnJHAL</UploadId>
  <Initiator>
      <ID>3xqvsfypbm4t5yljpydldixooivd46ne</ID>
      <DisplayName>taro@iij.ad.jp</DisplayName>
  </Initiator>
  <Owner>
    <ID>3xqvsfypbm4t5yljpydldixooivd46ne</ID>
    <DisplayName>taro@iij.ad.jp</DisplayName>
  </Owner>
  <StorageClass>STANDARD</StorageClass>
  <PartNumberMarker>1</PartNumberMarker>
  <NextPartNumberMarker>3</NextPartNumberMarker>
  <MaxParts>2</MaxParts>
  <IsTruncated>true</IsTruncated>
  <Part>
    <PartNumber>2</PartNumber>
    <LastModified>2010-11-10T20:48:34.000Z</LastModified>
    <ETag>"7778aef83f66abc1fa1e8477f296d394"</ETag>
    <Size>10485760</Size>
  </Part>
  <Part>
    <PartNumber>3</PartNumber>
    <LastModified>2010-11-10T20:48:33.000Z</LastModified>
    <ETag>"aaaa18db4cc2f85cedef654fccc4a4x8"</ETag>
    <Size>10485760</Size>
  </Part>
</ListPartsResult>

Initiate Multipart Upload

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

リクエスト情報

シンタックス

POST /{object key}?uploads HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}

リクエストパラメータ

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

リクエストヘッダー

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

表. Initiate Multipart Upload リクエストヘッダー一覧
HTTPヘッダー 説明 必須
Cache-Control
キャッシュの振る舞いの指定
詳しい情報については以下をご覧ください。

型: String:デフォルト値: なし

×
Content-Disposition
オブジェクトのプレゼンテーショナルな情報の指定
詳しい情報については以下をご覧ください。
型:String
デフォルト値:なし
×
Content-Encoding
コンテンツのエンコード方式
詳しい情報については以下をご覧ください。
型: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で指定される暗号化キーは同じものを指定する必要があります。

Warning

暗号化キーは本サービス内に保存されません。暗号化実施後に破棄します。暗号化キーはお客様が管理する必要があります。
暗号化キーが不明となった場合、オブジェクトの取得が出来なくなります。
表. サーバサイド暗号化 ヘッダ一覧
名前 説明 必須
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 エラーコード一覧
コード ステータス 内容
InvalidArgument 400 Bad Request
以下のいずれかが原因です。
  • サーバサイド暗号化用のヘッダの指定に誤りがあります
  • httpsで通信をしていません
InvalidEncryptionAlgorithmError 400 Bad Request x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。

サンプル

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

リクエスト

POST /myobject?uploads HTTP/1.1
Host: mybucket.storage-dag.iijgio.com
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: storage-dag.iijgio.com

<?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>

Complete Multipart Upload

この操作は、マルチパートアップロードを完了するための操作です。

この操作を行うには、Initiate Multipart Uploadを使用してマルチパートアップロードを開始し、1つ以上のパートをアップロードしておく必要があります。この状態で、オブジェクトを構成するパートを指定し、本操作を行うことで新たにオブジェクトが生成されます。

マルチパートアップロードの完了後は、そのマルチパートアップロードとそれに属する全てのパートは解放されますのでご注意ください。

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

リクエスト情報

シンタックス

POST /{object key}?uploadId={upload ID} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
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 エラーコード一覧
コード ステータス 内容
InvalidPart 400 Bad Request
指定したパートが存在しないか、リクエストに指定したパートのETagが一致しません。
InvalidPartOrder 400 Bad Request
リクエストで指定したパートのリストが昇順になっていません。指定するパートのリストはパート番号が昇順になっていなければなりません。
EntityTooSmall 400 Bad Request
パートのサイズが小さ過ぎます。最後のパート以外はパートのサイズが 5MB 以上でなければなりません。
NoSuchUpload 404 Not Found
指定したマルチパートアップロードが存在しません。
無効なアップロードIDを指定したか、指定したマルチパートアップロードが既に完了または中断している可能性あります。

サンプル

3つのパートを指定して Complete Multipart Upload リクエストを送る

リクエスト

POST /myobject?uploadId=AAAsb2FkIElEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIRRwbG9hZA HTTP/1.1
Host: mybucket.storage-dag.iijgio.com
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: storage-dag.iijgio.com

<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/">
  <Location>http://mybucket.storage-dag.iijgio.com/myobject</Location>
  <Bucket>mybucket</Bucket>
  <Key>myobject</Key>
  <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag>
</CompleteMultipartUploadResult>

Abort Multipart Upload

この操作は、進行中のマルチパートアップロードを中断するための操作です。

進行中のマルチパートアップロードのアップロードIDを指定し本操作を行うことで、マルチパートアップロードは中断され、指定のマルチパートアップロードおよびそれに属する全てのパートのリソースを解放します。

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

リクエスト情報

シンタックス

DELETE /{object key}?uploadId={upload ID} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}

リクエストパラメータ

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

リクエストヘッダー

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

リクエストエレメント

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

レスポンス情報

レスポンスヘッダー

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

レスポンスエレメント

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

エラー情報

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

表. Abort Multipart エラーコード一覧
コード ステータス 内容
NoSuchUpload 404 Not Found
指定したマルチパートアップロードが存在しません。
無効なアップロードIDを指定したか、指定したマルチパートアップロードが既に完了または中断している可能性あります。

サンプル

マルチパートアップロードを削除する

リクエスト

DELETE /myobject?uploadId=VXBsb2FkIElEIGZvciBlbHZpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZ HTTP/1.1
Host: example-bucket.storage-dag.iijgio.com
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

レスポンス

HTTP/1.1 204 OK
x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran
x-iijgio-request-id: 318BC8BC148832E5
Date: Wed, 1 Oct 2014 00:00:00 GMT
Content-Length: 0
Connection: keep-alive
Server: storage-dag.iijgio.com

ページ先頭へ