拷貝對象即複製Bucket中的檔案。在有些情況下,您可能需要僅僅只是將一些Object從一個Bucket複製到另外一個Bucket,不改變內容。這種情況一般的做法是將Object重新下載然後上傳。但是因為數據實際上都是一樣的,因此浪費了很多網路頻寬。因此OSS提供了CopyObject的功能來實現OSS的內部拷貝,這樣在用戶和OSS之間就無需傳輸大量的數據。

另外,由於OSS不提供重新命名功能,因此如果需要對Object進行重新命名的話,最佳的方法就是調用OSS的CopyObject介面先將原來的數據拷貝成新的檔案名,然後刪除原Object。如果用戶僅僅是需要修改某個Object的一些Object Meta資訊,同樣可以調用CopyObject的介面,將源Object地址和目標Object地址設定成相同的,這樣OSS就會僅更新該Object Meta資訊。Object Meta資訊可以參考Object Meta

該操作有以注意事項:

  • 您需要有源Object的操作許可權,否則會無法完成操作。
  • 該操作不支援跨Region拷貝數據。比如:不支援將杭州Bucket裡的Object拷貝到青島。
  • 該操作支援的最大Object大小為1GB。
  • 該操作不能對追加上傳產生的Object進行拷貝。

功能使用參考:

拷貝大檔案

當用戶的Object很大的時候,就必須採用其他的方法來完成。和上傳操作一樣,OSS提供了類似斷點續傳上傳的功能來完成大檔案的拷貝。

基本操作步驟和斷點續傳上傳內描述的基本一致,唯一需要注意的就是將UploadPart替換成UploadPartCopy

UploadPartCopy的語義和UploadPart基本一致,只是資料來源從HTTP請求直接上傳改成從源Object中獲取。

功能使用參考: