4.5.5. Swift でオブジェクトのコピー
オブジェクトのコピーを使用すると、オブジェクトをダウンロードしたり、別のコンテナーにアップロードしたりしなくてもよいように、オブジェクトのサーバー側のコピーを作成できます。あるオブジェクトのコンテンツを別のオブジェクトにコピーするには、API バージョン、アカウント、およびコンテナー名で PUT 要求または COPY 要求を行います。
PUT 要求の場合は、要求で宛先コンテナーおよびオブジェクト名、および要求ヘッダーのソースコンテナーおよびオブジェクトを使用します。
Copy リクエストには、要求でソースコンテナーおよびオブジェクト、および要求ヘッダーの宛先コンテナーおよびオブジェクトを使用します。オブジェクトをコピーするには、コンテナーに書き込みパーミッションが必要です。宛先オブジェクト名は、コンテナー内で一意である必要があります。リクエストはべき等ではないため、一意の名前を使用しないと、リクエストにより宛先オブジェクトが更新されます。宛先オブジェクトが別の疑似階層ディレクトリーにある場合は、オブジェクト名に疑似階層構文を使用して、同じ名前のソースオブジェクトと区別できます。リクエストには、アクセス制御ヘッダーおよびメタデータヘッダーを含めることができます。
構文
PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
または、次のようになります。
構文
COPY /API_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1
Destination: TENANT:DEST_CONTAINER/DEST_OBJECT
リクエストヘッダー
X-Copy-From- 説明
-
ソースコンテナー/オブジェクトパスを定義するために
PUTリクエストで使用されます。 - 型
- String
- 必須
-
はい (
PUTを使用している場合)
宛先- 説明
-
宛先コンテナー/オブジェクトパスを定義するために
COPY要求で使用されます。 - 型
- String
- 必須
-
はい (
COPYを使用している場合)
If-Modified-Since- 説明
-
ソースオブジェクトの
last_modified属性の日時以降に変更された場合のみコピーします。 - 型
- 日付
- 必須
- いいえ
If-Unmodified-Since- 説明
-
ソースオブジェクトの
last_modified属性の日時以降に変更した場合のみコピーします。 - 型
- 日付
- 必須
- いいえ
Copy-If-Match- 説明
- リクエストの ETag がソースオブジェクトの ETag と一致する場合にのみコピーします。
- 型
- ETag
- 必須
- いいえ
Copy-If-None-Match- 説明
-
リクエストの
ETagがソースオブジェクトの ETag と一致しない場合にのみコピーします。 - 型
- ETag
- 必須
- いいえ