View a markdown version of this page

CopyObject (SOAP API) - Amazon Simple Storage Service

CopyObject (SOAP API)

注記

SOAP API for Amazon S3 は新規顧客には利用できず、2025 年 8 月 31 日にサポート終了 (EOL) となります。REST API か AWS SDK を使用することをお勧めします。

説明

ソースオブジェクトのキーとバケット、およびターゲット送信先のキーとバケットを指定すると、CopyObject オペレーションによってオブジェクトのコピーが作成されます。

オブジェクトをコピーするときは、すべてのメタデータを保持する (デフォルト) か、新しいメタデータを指定できます。ただし、ACL は保持されず、リクエストを行ったユーザーに対して private に設定されます。デフォルトの ACL 設定を上書きするには、コピーリクエストを生成するときに新しい ACL を指定します。詳細については、「ACL によるアクセス管理」を参照してください。

すべてのコピーリクエストには認証が必要です。さらに、ソースオブジェクトへの read アクセスと、送信先バケットへの write アクセスが必要です。詳細については、「認証アクセスの使用」を参照してください。

Etag が一致するかどうか、オブジェクトが指定された日付の前後に変更されたかどうかなど、特定の条件下でのみオブジェクトをコピーするには、リクエストパラメータ CopySourceIfUnmodifiedSinceCopyIfUnmodifiedSinceCopySourceIfMatch、または CopySourceIfNoneMatch を使用します。

注記

大きなオブジェクトをコピーするには、SOAP スタックソケットのタイムアウトを設定する必要がある場合があります。

リクエストの構文

<CopyObject xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <SourceBucket>source_bucket</SourceBucket> <SourceObject>source_object</SourceObject> <DestinationBucket>destination_bucket</DestinationBucket> <DestinationObject>destination_object</DestinationObject> <MetadataDirective>{REPLACE | COPY}</MetadataDirective> <Metadata> <Name>metadata_name</Name> <Value>metadata_value</Value> </Metadata> ... <AccessControlList> <Grant> <Grantee xsi:type="user_type"> <ID>user_id</ID> <DisplayName>display_name</DisplayName> </Grantee> <Permission>permission</Permission> </Grant> ... </AccessControlList> <CopySourceIfMatch>etag</CopySourceIfMatch> <CopySourceIfNoneMatch>etag</CopySourceIfNoneMatch> <CopySourceIfModifiedSince>date_time</CopySourceIfModifiedSince> <CopySourceIfUnmodifiedSince>date_time</CopySourceIfUnmodifiedSince> <AWSAccessKeyId>AWSAccessKeyId</AWSAccessKeyId> <Timestamp>TimeStamp</Timestamp> <Signature>Signature</Signature> </CopyObject>

リクエストパラメータ

名前 説明 必須
SourceBucket

ソースバケットの名前。

タイプ: 文字列

デフォルト: なし

制約: 有効なソースバケット。

はい
SourceKey

ソースオブジェクトのキーの名前。

タイプ: 文字列

デフォルト: なし

制約: READ アクセスを持つ有効なソースオブジェクトのキー。

はい
DestinationBucket

宛先 バケットの名前。

タイプ: 文字列

デフォルト: なし

制約: 送信先バケットへの WRITE アクセスが必要です。

はい
DestinationKey

送信先オブジェクトのキー。

タイプ: 文字列

デフォルト: なし

制約: 送信先バケットへの WRITE アクセスが必要です。

はい
MetadataDirective

メタデータをソースオブジェクトからコピーするか、リクエストで指定されたメタデータに置き換えるかを指定します。

タイプ: 文字列

デフォルト: COPY

有効な値: COPY | REPLACE

制約: COPY または REPLACE 以外の値は即時エラーになります。MetadataDirective ヘッダーが指定され、その値が REPLACE に設定されていない限り、オブジェクトをそれ自体にコピーすることはできません。

いいえ
Metadata

オブジェクトに設定するメタデータの名前と値のペアを指定します。MetadataDirective が COPY に設定されている場合、すべてのメタデータは無視されます。

タイプ: 文字列

デフォルト: なし

制約: なし。

いいえ
AccessControlList

E メールアドレスまたは正規ユーザー ID でユーザーにアクセス権を付与します。

タイプ: 文字列

デフォルト: なし

制約: なし。

いいえ
CopySourceIfMatch

エンティティタグ (ETag) が指定されたタグと一致する場合はオブジェクトをコピーします。一致しない場合は、PreconditionFailed を返します。

タイプ: 文字列

デフォルト: なし

制約: なし。Etag が一致しない場合、オブジェクトはコピーされません。

いいえ
CopySourceIfNoneMatch

エンティティタグ (ETag) が指定された Etag と異なる場合はオブジェクトをコピーします。それ以外の場合はエラーを返します。

タイプ: 文字列

デフォルト: なし

制約: なし。

いいえ
CopySourceIfUnmodifiedSince

指定された時刻以降に変更されていない場合は、オブジェクトをコピーします。それ以外の場合は、PreconditionFailed を返します。

型: dateTime

デフォルト: なし

いいえ
CopySourceIfModifiedSince

指定された時刻以降に変更された場合は、オブジェクトをコピーします。それ以外の場合は、エラーを返します。

型: dateTime

デフォルト: なし

いいえ

レスポンスの構文

<CopyObjectResponse xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"etag"</ETag> <LastModified>timestamp</LastModified> </CopyObjectResponse> </CopyObjectResponse>

レスポンス要素

以下は、レスポンス要素のリストです。

注記

SOAP API は余分な空白を返しません。追加の空白は REST API によってのみ返されます。

名前 説明
Etag

新しいオブジェクトの ETag を返します。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。

タイプ: 文字列

祖先: CopyObjectResult

LastModified

オブジェクトの最終変更日時を返します。

タイプ: 文字列

祖先: CopyObjectResult

一般的なレスポンス要素については、「REST エラーレスポンスヘッダーの使用」を参照してください。

特殊なエラー

このオペレーションには特別なエラーはありません。一般的な Amazon S3 のエラーについては、「エラーコードのリスト」を参照してください。

このサンプルは、flotsam オブジェクト (pacific バケット) を jetsam オブジェクト (atlantic バケット) にコピーし、そのメタデータを維持します。

リクエスト例

<CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <SourceBucket>pacific</SourceBucket> <SourceObject>flotsam</SourceObject> <DestinationBucket>atlantic</DestinationBucket> <DestinationObject>jetsam</DestinationObject> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2008-02-18T13:54:10.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature> </CopyObject>

レスポンス例

<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>

この例では、ワンダーランドバケットから「tweedledee」オブジェクトをワンダーランドバケットの「tweedledum」オブジェクトにコピーし、メタデータを置き換えます。

リクエスト例

<CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <SourceBucket>wonderland</SourceBucket> <SourceObject>tweedledee</SourceObject> <DestinationBucket>wonderland</DestinationBucket> <DestinationObject>tweedledum</DestinationObject> <MetadataDirective >REPLACE</MetadataDirective > <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>relationship</Name> <Value>twins</Value> </Metadata> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2008-02-18T13:54:10.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature> </CopyObject>

レスポンス例

<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>

関連リソース