copy-object コマンドは、同じリージョン内の同じバケットまたは異なるバケットに格納されているオブジェクトをコピーするために使用されます。
注意事項
オブジェクトの以前のバージョンを現在のバージョンに復元するには、オブジェクトの以前のバージョンをオブジェクトが格納されているバケットにコピーします。 OSS は、オブジェクトの以前のバージョンを現在のバージョンとして格納します。
同じバケット内でオブジェクトをコピーする場合、コピーされるオブジェクトのサイズに制限はありません。 同じリージョン内のバケット間でオブジェクトをコピーする場合は、この操作を呼び出して 1 GB 未満のオブジェクトをコピーすることをお勧めします。 1 GB を超えるオブジェクトをコピーするには、upload-part-copy コマンドを実行できます。
ソースオブジェクトがシンボリックリンクの場合、シンボリックリンクのみがコピーされます。 シンボリックリンクが指すオブジェクトはコピーされません。
権限
デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 RAM ユーザーまたは Alibaba Cloud アカウント下の RAM ロールは、デフォルトでは権限を持っていません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたは バケットポリシーを通じて操作権限を付与する必要があります。
API | アクション | 定義 |
CopyObject |
| バケット内または同じリージョン内のバケット間でオブジェクトをコピーします。 |
| ||
| versionId を介してソースオブジェクトのバージョンを指定する場合、この権限も必要です。 | |
| x-oss-tagging を介してオブジェクトタグをコピーする場合、これらの権限が必要です。 | |
| ||
| versionId を介してソースオブジェクトの特定のバージョンのタグを指定する場合、この権限も必要です。 | |
| オブジェクトをコピーするときに、コピー先のオブジェクトメタデータに X-Oss-Server-Side-Encryption: KMS が含まれている場合、これら 2 つの権限が必要です。 | |
|
構文
ossutil api copy-object --bucket value --key value --copy-source value [flags]パラメーター | タイプ | 説明 |
--bucket | string | バケットの名前。 |
--key | string | オブジェクトのフルパス。 |
--forbid-overwrite | string | CopyObject 操作で、コピーしようとするオブジェクトと同じ名前の既存のオブジェクトを上書きできるかどうかを指定します。 |
--copy-source | string | ソースオブジェクトにアクセスするために使用されるアドレス。 フォーマット: |
--copy-source-if-match | string | ソースオブジェクトの ETag 値がリクエストで指定された ETag 値と同じである場合、OSS はオブジェクトをコピーします。 それ以外の場合、OSS は HTTP ステータスコード 412 (PreconditionFailed) を返します。 |
--copy-source-if-modified-since | string | オブジェクト転送の条件。 指定された時刻がオブジェクトの実際の変更時刻よりも前の場合、システムはオブジェクトを転送し、200 OK を返します。 それ以外の場合、システムは 304 Not Modified を返します。 |
--copy-source-if-none-match | string | オブジェクト転送の条件。 指定された ETag 値がソースオブジェクトの ETag 値と一致しない場合、OSS はオブジェクトを転送し、200 OK を返します。 それ以外の場合、OSS は 304 Not Modified を返します。 |
--copy-source-if-unmodified-since | string | オブジェクト転送の条件。 指定された時刻が実際の変更時刻と同じかそれ以降の場合、OSS はオブジェクトを転送し、200 OK を返します。 それ以外の場合、OSS は 412 Precondition Failed を返します。 |
--metadata | stringArray | key=value 形式のオブジェクトのユーザーメタデータ。 カスタムメタデータを指定するには、x-oss-meta-* のプレフィックスが付いたパラメーターを設定する必要があります。 |
--metadata-directive | string | コピー先のオブジェクトのメタデータを設定するために使用されるメソッド。 |
--object-acl | string | オブジェクトのアクセス制御リスト (ACL) を指定します。 |
--server-side-encryption | string | OSS サーバーでオブジェクトを暗号化するために使用されるメソッド。 |
--server-side-encryption-key-id | string | Key Management Service (KMS) によって管理されるカスタマーマスターキー (CMK) の ID。 |
--storage-class | string | オブジェクトのストレージクラス。 |
--tagging | string | オブジェクトのタグ。 |
--tagging-directive | string | コピー先のオブジェクトにタグを追加するために使用されるメソッド。 |
copy-object コマンドは、CopyObject API 操作に対応しています。 パラメーターの詳細については、「CopyObject」をご参照ください。
サポートされているグローバルコマンドラインオプションの詳細については、「コマンドラインオプション」をご参照ください。
例
srcBucketからsrcObjectをexamplebucketにexampleobjectとしてコピーします。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObjectexamplebucketからsrcObjectをexampleobjectとしてコピーします。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObjectexamplebucketからsrcObjectをexampleobjectとしてコピーし、結果を JSON 形式で表示します。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format jsonexamplebucketからsrcObjectをexampleobjectとしてコピーし、結果を YAML 形式で表示します。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yamlexamplebucketからsrcObjectをexampleobjectとしてコピーし、exampleobjectが同じ名前の既存のオブジェクトを上書きすることを禁止します。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite truesrcObjectの ETag 値が 123 と等しい場合、examplebucketからsrcObjectをexampleobjectとしてコピーします。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123srcObjectの変更時刻が 2020 年 5 月 11 日月曜日 08:16:23 GMT より前の場合、examplebucketからsrcObjectをexampleobjectとしてコピーします。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"examplebucketからsrcObjectをexampleobjectとしてコピーします。 リクエストで指定されたメタデータは、srcObjectのメタデータの代わりに使用されます。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.comexamplebucketからsrcObjectをexampleobjectとしてコピーします。 リクエストで指定されたタグは、exampleobjectに追加されます。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"examplebucketからsrcObjectをexampleobjectとしてコピーし、オブジェクトの ACL とストレージクラスを指定します。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA