copy-object
copy-object用于拷貝同一地域下相同或不同存儲(chǔ)空間(Bucket)之間的文件(Object)。
注意事項(xiàng)
阿里云賬號(hào)默認(rèn)擁有設(shè)置和獲取Object的權(quán)限。如果您需要通過RAM用戶或者STS的方式進(jìn)行設(shè)置和獲取,您必須擁有
oss:PutObject
和oss:GetObject
權(quán)限。具體操作,請(qǐng)參見為RAM用戶授權(quán)自定義的權(quán)限策略。如果需要恢復(fù)Object的早期版本為當(dāng)前版本,您只需將Object的早期版本拷貝到同一個(gè)Bucket中,OSS會(huì)將該Object對(duì)應(yīng)的早期版本置為當(dāng)前版本。
如果源Bucket和目標(biāo)Bucket相同,則Object的大小無限制。如果源Bucket和目標(biāo)Bucket不同,則建議拷貝小于1 GB的Object。當(dāng)您需要拷貝大于1 GB的Object時(shí),請(qǐng)使用upload-part-copy。
如果源Object為軟鏈接,則只拷貝軟鏈接,無法拷貝軟鏈接指向的文件內(nèi)容。
命令格式
ossutil api copy-object --bucket value --key value --copy-source value [flags]
參數(shù) | 類型 | 說明 |
--bucket | string | Bucket名稱。 |
--key | string | Object的完整路徑。 |
--forbid-overwrite | string | 指定CopyObject操作時(shí)是否覆蓋同名目標(biāo)Object。 |
--copy-source | string | 拷貝源地址(必須有可讀權(quán)限),其格式為: |
--copy-source-if-match | string | 如果源Object的ETAG值和用戶提供的ETAG相等,則執(zhí)行拷貝操作;否則返回412 HTTP錯(cuò)誤碼(預(yù)處理失敗)。 |
--copy-source-if-modified-since | string | 如果指定的時(shí)間早于實(shí)際修改時(shí)間,則正常傳送文件,并返回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 | 如果傳入?yún)?shù)中的時(shí)間等于或者晚于文件實(shí)際修改時(shí)間,則正常傳輸文件,并返回200 OK;否則返回412 precondition failed錯(cuò)誤 |
--metadata | stringArray | 指定對(duì)象的用戶元數(shù)據(jù),使用key=value格式,如需要自定義攜帶的元數(shù)據(jù),需配置以x-oss-meta-*為前綴的參數(shù)。 |
--metadata-directive | string | 指定如何設(shè)置目標(biāo)Object的元信息。 |
--object-acl | string | 指定Object的訪問權(quán)限。 |
--server-side-encryption | string | 指定服務(wù)器端加密方式。 |
--server-side-encryption-key-id | string | 表示KMS托管的用戶主密鑰。 |
--storage-class | string | 指定Object的存儲(chǔ)類型。 |
--tagging | string | 指定Object的標(biāo)簽。 |
--tagging-directive | string | 指定如何設(shè)置目標(biāo)Object的對(duì)象標(biāo)簽。 |
copy-object命令對(duì)應(yīng)API接口CopyObject。關(guān)于API中的具體參數(shù)含義,請(qǐng)參見CopyObject。
關(guān)于支持的全局命令行選項(xiàng),請(qǐng)參見支持的全局命令行選項(xiàng)。
使用示例
拷貝
srcBucket
存儲(chǔ)空間下的srcObject到examplebucket
存儲(chǔ)空間下的exampleobject。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject,以JSON格式顯示。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject,以YAML格式顯示。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject并禁止覆蓋同名目標(biāo)Object。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject,如果srcObject的ETag等于123則執(zhí)行拷貝。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject,如果srcObject的修改時(shí)間早于 Mon, 11 May 2020 08:16:23 GMT則執(zhí)行拷貝。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
存儲(chǔ)空間下的srcObject到exampleobject,忽略源srcObject的元數(shù)據(jù),直接采用請(qǐng)求中指定的元數(shù)據(jù)。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject,忽略源Object的對(duì)象標(biāo)簽,直接采用請(qǐng)求中指定的對(duì)象標(biāo)簽。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"
拷貝
examplebucket
存儲(chǔ)空間下的srcObject到exampleobject,指定object的訪問權(quán)限以及存儲(chǔ)類型。ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA