Upload Part (Copy)
この操作は、進行中のマルチパートアップロードに対して PUT Object (Copy) のように既存のオブジェクトをパートとしてコピーするものです。
通常のアップロードを行う場合は、 Upload Part をご覧ください。
この操作を行う前に、 Initiate Multipart Upload を使用してマルチパートアップロードを開始しアップロードIDを取得しておく必要があります。
![]() |
パートのアップロードには以下の制限がありますのでご注意ください。
|
リクエスト情報
シンタックス
PUT /{bucket name}/{object key}?partNumber={part number}&uploadId={upload ID} HTTP/1.1 |
Host: ds.iot.iij.jp |
x-amz-copy-source: /{source bucket}/{source object} |
x-amz-copy-source-range:bytes={first}-{last} |
x-amz-copy-source-if-match: {etag} |
x-amz-copy-source-if-none-match: {etag} |
x-amz-copy-source-if-unmodified-since: {time stamp} |
x-amz-copy-source-if-modified-since: {time stamp} |
Date: {date} |
Authorization: {authorization string} |
リクエストパラメータ
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
表. Upload Part (Copy) リクエストヘッダー一覧
| HTTPヘッダー | 説明 | 必須 | ||
|---|---|---|---|---|
| x-amz-copy-source |
バケット名とオブジェクトキー
|
○ | ||
| x-amz-copy-source-range | コピー元となるオブジェクトからコピーするデータ(Bytes)の範囲
|
× | ||
| x-amz-copy-source-if-match | ETagが指定のタグと一致する場合コピーを実行します。 |
× | ||
| x-amz-copy-source-if-none-match |
ETagが指定のタグとマッチしない場合コピーを実行します。マッチする場合には412 ステータスエラー(precondition failed)を返します。
|
× | ||
| x-amz-copy-source-if-unmodified-since | 指定された時間以降にオブジェクトが更新されていなければ、コピーを実行し、その他の場合には412 ステータスエラー(precondition failed)を返します。型:Stringデフォルト値:None制約この文字列はHTTPで有効なDateでなければならなりません。このヘッダーはx-iijgio-copy-source-if-matchヘッダーと併用できるが他のコピー条件指定のヘッダーとは併用できません。 |
× | ||
| x-amz-copy-source-if-modified-since |
指定された時間以降にオブジェクトが更新されていれば、コピーを実行し、その他の場合には412 ステータスエラー(precondition failed)を返します。
|
× |
リクエストエレメント
この操作ではリクエストエレメントは使用しません。
レスポンス情報
レスポンスヘッダー
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント
この操作では以下のレスポンスエレメントを返します。
表. Upload Part (Copy) レスポンスエレメント一覧
| 名前 | 説明 |
|---|---|
| CopyPartResult | レスポンスのルート要素となるコンテナ
|
| ETag | 新しいパートの ETag
|
| LastModified | パートの最終更新日時
|
エラー情報
この操作は共通のエラーレスポンスに加え、以下のエラーを返します。
表. Upload Part (Copy) エラーコード一覧
| コード | ステータス | 内容 |
|---|---|---|
| NoSuchUpload | 404 Not Found | 指定したマルチパートアップロードが存在しません。 |
| InvalidRequest | 404 Not Found | x-amz-copy-source-range で指定がサポートされていません。 |
| InvalidArgument | 400 Bad Request | 以下のいずれかが原因です。
|
| InvalidEncryptionAlgorithmError | 400 Bad Request | x-amz-server-side-encryption-customer-algorith,x-amz-copy-source-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル
異なるバケットのオブジェクトをコピーしてパートにする
リクエスト
PUT /target-bucket/target-object?partNumber=2&uploadId=VCVsb2FkIElEIGZvciBlbZZpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZR HTTP/1.1 |
Host: ds.iot.iij.jp |
Date: Wed, 1 Oct 2014 00:00:00 GMT |
x-amz-copy-source: /source-bucket/source-object |
x-amz-copy-source-range:bytes=500-6291456 |
Authorization: AWS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= |
レスポンス
HTTP/1.1 200 OK |
x-amz-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran |
x-amz-request-id: 318BC8BC148832E5 |
Date: Wed, 1 Oct 2014 00:00:00 GMT |
Server: ds.iot.iij.jp |
<CopyPartResult> |
<LastModified>2009-10-28T22:32:00</LastModified> |
<ETag>"9b2cf535f27731c974343645a3985328"</ETag> |
</CopyPartResult> |
この操作を行う前に、 Initiate Multipart Upload を使用してマルチパートアップロードを開始しアップロードIDを取得しておく必要があります。
![]() |
パートのアップロードには以下の制限がありますのでご注意ください。
|
リクエスト情報
シンタックス
PUT /{bucket name}/{object key}?partNumber={part number}&uploadId={upload ID} HTTP/1.1 |
Host: s3api.iot.iij.jp |
x-iijgio-copy-source: /{source bucket}/{source object} |
x-iijgio-copy-source-range:bytes={first}-{last} |
x-iijgio-copy-source-if-match: {etag} |
x-iijgio-copy-source-if-none-match: {etag} |
x-iijgio-copy-source-if-unmodified-since: {time stamp} |
x-iijgio-copy-source-if-modified-since: {time stamp} |
Date: {date} |
Authorization: {authorization string} |
リクエストパラメータ
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
表. Upload Part (Copy) リクエストヘッダー一覧
| HTTPヘッダー | 説明 | 必須 | ||||
|---|---|---|---|---|---|---|
| x-iijgio-copy-source |
バケット名とオブジェクトキー
|
○ | ||||
| x-iijgio-copy-source-range | コピー元となるオブジェクトからコピーするデータ(Bytes)の範囲
|
× | ||||
| x-iijgio-copy-source-if-match | ETagが指定のタグと一致する場合コピーを実行します。 |
× | ||||
| x-iijgio-copy-source-if-none-match |
ETagが指定のタグとマッチしない場合コピーを実行します。マッチする場合には412 ステータスエラー(precondition failed)を返します。
|
× | ||||
| x-iijgio-copy-source-if-unmodified-since | 指定された時間以降にオブジェクトが更新されていなければ、コピーを実行し、その他の場合には412 ステータスエラー(precondition failed)を返します。型:Stringデフォルト値:None制約この文字列はHTTPで有効なDateでなければならなりません。このヘッダーはx-iijgio-copy-source-if-matchヘッダーと併用できるが他のコピー条件指定のヘッダーとは併用できません。 |
× | ||||
| x-iijgio-copy-source-if-modified-since |
指定された時間以降にオブジェクトが更新されていれば、コピーを実行し、その他の場合には412 ステータスエラー(precondition failed)を返します。
|
× | ||||
| x-iijgio-website-redirect-location |
このオブジェクトに対するリクエストのリダイレクト先URL
また、外部のウェブサイトであれば以下のように絶対URLを指定します。
|
× |
パートを サーバサイド暗号化 で暗号化する場合、以下のヘッダを指定します。
![]() |
暗号化キーは本サービス内に保存されません。暗号化実施後に破棄します。暗号化キーはお客様が管理する必要があります。
暗号化キーが不明となった場合、オブジェクトの取得が出来なくなります。
|
表. Upload Part (Copy) リクエストヘッダー(サーバサイド暗号化) 一覧
| 名前 | 説明 | 必須 |
|---|---|---|
| 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エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
コピーの元オブジェクト(x-iijgio-copy-sourceで指定したオブジェクト)が サーバサイド暗号化 で暗号化されている場合、以下のヘッダを指定します。
表. Upload Part (Copy) リクエストヘッダー(サーバサイド暗号化 - Copy) 一覧
| 名前 | 説明 | 必須 |
|---|---|---|
| x-iijgio-copy-source-server-side-encryption-customer-algorithm | サーバサイド暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
| x-iijgio-copy-source-server-side-encryption-customer-key | ソースオブジェクトの復号に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります 暗号化キーは対象オブジェクトの複号後に速やかに破棄されます。 | 〇 |
| x-iijgio-copy-source-server-side-encryption-customer-key-MD5 | ソースオブジェクトの暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
リクエストエレメント
この操作ではリクエストエレメントは使用しません。
レスポンス情報
レスポンスヘッダー
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント
この操作では以下のレスポンスエレメントを返します。
表. Upload Part (Copy) レスポンスエレメント一覧
| 名前 | 説明 |
|---|---|
| CopyPartResult | レスポンスのルート要素となるコンテナ
|
| ETag | 新しいパートの ETag
|
| LastModified | パートの最終更新日時
|
エラー情報
この操作は共通のエラーレスポンスに加え、以下のエラーを返します。
表. Upload Part (Copy) エラーコード一覧
| コード | ステータス | 内容 |
|---|---|---|
| NoSuchUpload | 404 Not Found |
指定したマルチパートアップロードが存在しません。
無効なアップロードIDを指定したか、指定したマルチパートアップロードが既に完了または中断している可能性あります。
|
| InvalidRequest | 404 Not Found | x-iijgio-copy-source-range で指定がサポートされていません。 |
| InvalidArgument | 400 Bad Request | 以下のいずれかが原因です。
|
| InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorith,x-iijgio-copy-source-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル
異なるバケットのオブジェクトをコピーしてパートにする
リクエスト
PUT /target-bucket/target-object?partNumber=2&uploadId=VCVsb2FkIElEIGZvciBlbZZpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZR HTTP/1.1 |
Host: s3api.iot.iij.jp |
Date: Wed, 1 Oct 2014 00:00:00 GMT |
x-iijgio-copy-source: /source-bucket/source-object |
x-iijgio-copy-source-range:bytes=500-6291456 |
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= |
レスポンス
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 |
Server: s3api.iot.iij.jp |
<CopyPartResult> |
<LastModified>2009-10-28T22:32:00</LastModified> |
<ETag>"9b2cf535f27731c974343645a3985328"</ETag> |
</CopyPartResult> |
