upload-part-copy
upload-part-copy用于從一個(gè)已存在的Object中拷貝數(shù)據(jù)來上傳一個(gè)Part。
注意事項(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)限策略。當(dāng)拷貝一個(gè)大于1 GB的文件時(shí),必須使用upload-part-copy的方式進(jìn)行拷貝。如果想通過單個(gè)操作拷貝小于1 GB的文件,請(qǐng)參見copy-object。
執(zhí)行upload-part-copy的源Bucket地址和目標(biāo)Bucket地址必須是同一個(gè)Region。
調(diào)用該接口上傳Part數(shù)據(jù)前,必須先調(diào)用initiate-multipart-upload來獲取一個(gè)OSS服務(wù)器生成的Upload ID。
命令格式
ossutil api upload-part-copy --bucket value --key value --copy-source value --part-number value --upload-id value [flags]
參數(shù) | 類型 | 說明 |
--bucket | string | Bucket名稱。 |
--key | string | 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ò)誤 |
--copy-source-range | string | 源Object的拷貝范圍。 |
--metadata-directive | string | 指定如何設(shè)置目標(biāo)Object的元信息。 |
--part-number | string | 每一個(gè)上傳的Part都有一個(gè)標(biāo)識(shí)它的號(hào)碼(partNumber)。 |
--tagging | string | 指定Object的標(biāo)簽。 |
--tagging-directive | string | 指定如何設(shè)置目標(biāo)Object的對(duì)象標(biāo)簽。 |
--upload-id | string | MultipartUpload事件的ID。 |
upload-part-copy命令對(duì)應(yīng)API接口UploadPartCopy。關(guān)于API中的具體參數(shù)含義,請(qǐng)參見UploadPartCopy。
關(guān)于支持的全局命令行選項(xiàng),請(qǐng)參見支持的全局命令行選項(xiàng)。
使用示例
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part,以JSON格式顯示。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --output-format json
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part,以YAML格式顯示。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --output-format json
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part,拷貝范圍是0-9。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-range bytes=0-9
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part,如果srcObject的ETag 等于 123 則執(zhí)行拷貝。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-if-match 123
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part,如果srcObject的修改時(shí)間早于 Mon, 11 May 2020 08:16:23 GMT 則執(zhí)行拷貝。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"
從已存在srcbucket里srcobject的當(dāng)前版本中拷貝數(shù)據(jù)來上傳一個(gè)Part,忽略源Object的對(duì)象標(biāo)簽,直接采用請(qǐng)求中指定的對(duì)象標(biāo)簽。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --tagging-directive Replace --tagging "TagA=A&TagB=B"