全部產品
Search
文件中心

:copy-object

更新時間:Nov 28, 2024

copy-object用於拷貝同一地區下相同或不同儲存空間(Bucket)之間的檔案(Object)。

注意事項

  • 阿里雲帳號預設擁有設定和擷取Object的許可權。如果您需要通過RAM使用者或者STS的方式進行設定和擷取,您必須擁有oss:PutObjectoss:GetObject許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 如果需要恢複Object的早期版本為目前的版本,您只需將Object的早期版本拷貝到同一個Bucket中,OSS會將該Object對應的早期版本置為目前的版本。

  • 如果源Bucket和目標Bucket相同,則Object的大小無限制。如果源Bucket和目標Bucket不同,則建議拷貝小於1 GB的Object。當您需要拷貝大於1 GB的Object時,請使用upload-part-copy

  • 如果源Object為軟連結,則只拷貝軟連結,無法拷貝軟連結指向的檔案內容。

命令格式

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

參數

類型

說明

--bucket

string

Bucket名稱。

--key

string

Object的完整路徑。

--forbid-overwrite

string

指定CopyObject操作時是否覆蓋同名目標Object。

--copy-source

string

拷貝源地址(必須有可讀許可權),其格式為:bucket/UrIEncode(key),需要對來源物件名做url encode編碼。

--copy-source-if-match

string

如果源Object的ETAG值和使用者提供的ETAG相等,則執行拷貝操作;否則返回412 HTTP錯誤碼(預先處理失敗)。

--copy-source-if-modified-since

string

如果指定的時間早於實際修改時間,則正常傳送檔案,並返回200 OK;否則返回304 not modified。

--copy-source-if-none-match

string

如果傳入的ETag值和Object的ETag不匹配,則正常傳輸檔案,並返回200 OK;否則返回304 Not Modified。

--copy-source-if-unmodified-since

string

如果傳入參數中的時間等於或者晚於檔案實際修改時間,則正常傳輸檔案,並返回200 OK;否則返回412 precondition failed錯誤

--metadata

stringArray

指定對象的使用者中繼資料,使用key=value格式,如需要自訂攜帶的中繼資料,需配置以x-oss-meta-*為首碼的參數。

--metadata-directive

string

指定如何設定目標Object的元資訊。

--object-acl

string

指定Object的存取權限。

--server-side-encryption

string

指定伺服器端加密方式。

--server-side-encryption-key-id

string

表示KMS託管的使用者主要金鑰。

--storage-class

string

指定Object的儲存類型。

--tagging

string

指定Object的標籤。

--tagging-directive

string

指定如何設定目標Object的對象標籤。

說明

使用樣本

  • 拷貝srcBucket儲存空間下的srcObject到examplebucket儲存空間下的exampleobject。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,以JSON格式顯示。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,以YAML格式顯示。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject並禁止覆蓋同名目標Object。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,如果srcObject的ETag等於123則執行拷貝。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,如果srcObject的修改時間早於 Mon, 11 May 2020 08:16:23 GMT則執行拷貝。

    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.com
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,指定object伺服器端加密方式。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --server-side-encryption KMS --server-side-data-encryption SM4 --server-side-encryption-key-id 9468da86-3509-4f8d-a61e-6eab1eac****
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,忽略源Object的對象標籤,直接採用請求中指定的對象標籤。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"
  • 拷貝examplebucket儲存空間下的srcObject到exampleobject,指定object的存取權限以及儲存類型。

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