すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトのコピー

最終更新日:Jul 04, 2025

copy-object コマンドは、同じリージョン内の同じバケットまたは異なるバケットに格納されているオブジェクトをコピーするために使用されます。

注意事項

  • オブジェクトの以前のバージョンを現在のバージョンに復元するには、オブジェクトの以前のバージョンをオブジェクトが格納されているバケットにコピーします。 OSS は、オブジェクトの以前のバージョンを現在のバージョンとして格納します。

  • 同じバケット内でオブジェクトをコピーする場合、コピーされるオブジェクトのサイズに制限はありません。 同じリージョン内のバケット間でオブジェクトをコピーする場合は、この操作を呼び出して 1 GB 未満のオブジェクトをコピーすることをお勧めします。 1 GB を超えるオブジェクトをコピーするには、upload-part-copy コマンドを実行できます。

  • ソースオブジェクトがシンボリックリンクの場合、シンボリックリンクのみがコピーされます。 シンボリックリンクが指すオブジェクトはコピーされません。

権限

デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 RAM ユーザーまたは Alibaba Cloud アカウント下の RAM ロールは、デフォルトでは権限を持っていません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたは バケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

定義

CopyObject

oss:GetObject

バケット内または同じリージョン内のバケット間でオブジェクトをコピーします。

oss:PutObject

oss:GetObjectVersion

versionId を介してソースオブジェクトのバージョンを指定する場合、この権限も必要です。

oss:GetObjectTagging

x-oss-tagging を介してオブジェクトタグをコピーする場合、これらの権限が必要です。

oss:PutObjectTagging

oss:GetObjectVersionTagging

versionId を介してソースオブジェクトの特定のバージョンのタグを指定する場合、この権限も必要です。

kms:GenerateDataKey

オブジェクトをコピーするときに、コピー先のオブジェクトメタデータに X-Oss-Server-Side-Encryption: KMS が含まれている場合、これら 2 つの権限が必要です。

kms:Decrypt

構文

ossutil api copy-object --bucket value --key value --copy-source value [flags]

パラメーター

タイプ

説明

--bucket

string

バケットの名前。

--key

string

オブジェクトのフルパス。

--forbid-overwrite

string

CopyObject 操作で、コピーしようとするオブジェクトと同じ名前の既存のオブジェクトを上書きできるかどうかを指定します。

--copy-source

string

ソースオブジェクトにアクセスするために使用されるアドレス。 フォーマット: bucket/UrIEncode(key)。 ソースオブジェクトを読み取る権限が必要です。 ソースオブジェクトの名前は URL エンコードされている必要があります。

--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 から srcObjectexamplebucketexampleobject としてコピーします。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject
  • examplebucket から srcObjectexampleobject としてコピーします。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
  • examplebucket から srcObjectexampleobject としてコピーし、結果を JSON 形式で表示します。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
  • examplebucket から srcObjectexampleobject としてコピーし、結果を YAML 形式で表示します。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
  • examplebucket から srcObjectexampleobject としてコピーし、exampleobject が同じ名前の既存のオブジェクトを上書きすることを禁止します。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
  • srcObject の ETag 値が 123 と等しい場合、examplebucket から srcObjectexampleobject としてコピーします。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • srcObject の変更時刻が 2020 年 5 月 11 日月曜日 08:16:23 GMT より前の場合、examplebucket から srcObjectexampleobject としてコピーします。

    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 から srcObjectexampleobject としてコピーします。 リクエストで指定されたメタデータは、srcObject のメタデータの代わりに使用されます。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com
  • examplebucket から srcObjectexampleobject としてコピーします。 リクエストで指定されたタグは、exampleobject に追加されます。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"
  • examplebucket から srcObjectexampleobject としてコピーし、オブジェクトの ACL とストレージクラスを指定します。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA