本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
複製、移動和重新命名物件
此CopyObject
作業會建立已存放在 Amazon S3 中的物件複本。
您可以在單一原子作業中建立最多 5 GB 的物件副本。不過,若要複製大於 5 GB 的物件,您必須使用多部分上傳。如需詳細資訊,請參閱使用分段上傳來複製物件。
使用 CopyObject
操作,您可以:
-
建立物件的其他複本。
-
透過複製物件並刪除原始物件來重新命名物件。
-
將物件從一個值區複製或移動到另一個值區,包括跨值區 AWS 區域 (例如,從
us-west-1
到eu-west-2
)。當您移動物件時,Amazon S3 會將物件複製到指定的目的地,然後刪除來源物件。注意
複製或移動物件 AWS 區域 會產生頻寬費用。如需詳細資訊,請參閱 Amazon S3 定價
。 -
變更物件中繼資料。每個 Amazon S3 物件都有中繼資料。此元數據是一組名稱-值對。您可以在上載物件時設定物件中繼資料。上載物件之後,您就無法修改物件中繼資料。修改物件中繼資料唯一的方式是製作物件的複本,再設定中繼資料。若要這麼做,請在複製作業中,設定與來源和目標相同的物件。
一些對象元數據是系統元數據,另一些是用戶定義的 您可以控制某些系統中繼資料。例如,您可以控制要用於物件的儲存區類別和伺服器端加密類型。當您複製物件時,也會一併複製使用者控制的系統中繼資料及使用者定義的中繼資料。Amazon S3 會重設系統控制的中繼資料。例如,複製物件時,Amazon S3 會重設複製物件的建立日期。您不需要在複製請求中設定任何這些系統控制的中繼資料值。
複製物件時,可能會決定要更新部分的中繼資料值。例如,若來源物件設定為使用 S3 Standard 儲存體,可以為物件複本選擇使用 S3 Intelligent-Tiering。也有可能決定要改變來源物件上一部分的使用者定義中繼資料值。如果選擇在複製期間更新任何物件之使用者可設定的中繼資料 (系統或使用者定義),則您必須在要求中明確指定存在於來源物件上之所有使用者可設定的中繼資料,即使只變更其中一個中繼資料值亦然。
如需物件中繼資料的詳細資訊,請參閱「使用物件中繼資料」。
複製已封存和還原的物件
若來源物件封存在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 中,即必須先還原暫存副本,才可將物件複製到其他儲存貯體。如需封存物件的資訊,請參閱 轉換為 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 儲存類別 (物件封存)。
S3 冰川彈性擷取或 S3 Glacier 深層存檔儲存類別中還原的物件不支援 Amazon S3 主控台中的複製操作。若要複製這些還原的物件,請使用 AWS Command Line Interface (AWS CLI), 該 AWS SDKs,或 Amazon S3 REST API。
複製加密物件
Amazon S3 會自動加密複製到 S3 儲存貯體的所有新物件。若您未在複製請求中指定加密資訊,目標物件的加密設定會設為目的地儲存貯體的預設加密組態。根據預設,所有儲存貯體都有基本層級的加密組態,該組態使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3)。如果目的地儲存貯體具有使用伺服器端加密的預設加密組態 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 或客戶提供的加密金鑰 (SSE-C),Amazon S3 會使用對應的KMS金鑰或客戶提供的金鑰來加密目標物件複本。
複製物件時,如果您想要對目標物件使用不同類型的加密設定,可以請求 Amazon S3 使用KMS金鑰、Amazon S3 受管金鑰或客戶提供的金鑰來加密目標物件。如果請求中的加密設定與目的地儲存貯體的預設加密組態不同,會優先使用請求中的加密設定。如果複製的來源物件使用 SSE-C 加密,您必須在請求中提供必要的加密資訊,以便 Amazon S3 能夠解密要複製的物件。如需詳細資訊,請參閱使用加密來保護資料。
複製物件時使用總和檢查
複製物件時,您可以選擇對物件使用不同的檢查總和演算法。無論您選擇使用相同演算法還是新的演算法,Amazon S3 都會在複製物件後計算新的檢查總和值。Amazon S3 不會直接複製檢查總和的值。使用多部分上傳所載入之物件的總和檢查碼值可能會變更。如需如何計算此檢查總和的詳細資訊,請參閱「對分段上傳使用部分檢查總和」。
在單一要求中複製多個物件
若要透過單一請求複製多個 Amazon S3 物件,您也可以使用 S3 Batch 操作。您可以為 S3 批次操作提供一份要進行操作的物件清單。S3 Batch 操作會呼叫相應的API作業來執行指定的作業。單一批次作業任務可在包含數 EB 資料的數十億個物件上執行指定的操作。
S3 批次操作功能會追蹤進度、傳送通知,並存放所有動作的詳細完成報告,提供完整受管、可稽核、無伺服器的體驗。您可以透過 Amazon S3 主控台使用 S3 Batch 操作, AWS CLI, AWS SDKs,或RESTAPI。如需詳細資訊,請參閱S3 批次作業基礎知識。
將物件複製到目錄值區
如需將物件複製到目錄值區的相關資訊,請參閱將物件複製到目錄儲存貯體。如需將 Amazon S3 快速單區域儲存類別與目錄儲存貯體搭配使用的相關資訊,請參閱什麼是 S3 Express One Zone?和目錄值區。
複製物件
若要複製物件,請使用下列方法。
注意
-
使用 Amazon S3 主控台複製物件時,您必須擁有
s3:ListAllMyBuckets
許可。控制台需要此權限才能驗證複製操作。如需授與此權限的原則範例,請參閱Amazon S3 的基於身分識別的政策範例。如果您要複製具有使用者定義標籤的物件,您也必須擁有該
s3:GetObjectTagging
權限。如果您要複製沒有使用者定義標籤但大小超過 16 MB 的物件,您還必須擁有 s3:GetObjectTagging
權限。如果目的地儲存貯體原則拒絕該
s3:GetObjectTagging
動作,則會複製物件而不使用使用者定義的標籤,而且您會收到錯誤訊息。 -
使用 S3 主控台無法複製使用客戶提供的加密金鑰 (SSE-C) 加密的物件。若要複製使用 SSE-C 加密的物件,請使用 AWS CLI, AWS SDK,或 Amazon S3 REST API。
-
Amazon S3 主控台不支援使用 SSE-KMS 加密物件的跨區域複製。若要KMS跨區域複製使用 SSE-加密的物件,請使用 AWS CLI, AWS SDK,或 Amazon S3 REST API。
複製物件
登入到 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/
。 -
在左側導覽窗格中,選擇「值區」,然後選擇「一般用途值區」頁標。導覽至 Amazon S3 儲存貯體或資料夾,其中包含您要複製的物件。
-
選取物件名稱左側的核取方塊,以複製這些物件。
-
在 [動作] 功能表上,從顯示的選項清單中選擇 [複製]。
-
選取目的地類型和目的地帳戶。若要指定目的地路徑,請選擇 Browse S3 (瀏覽 S3),導覽至目的地,然後選取目的地左側的核取方塊。選擇右下角的 Choose destination (選擇目的地)。
或者,輸入目的地路徑。
-
如果您沒有啟用儲存貯體版本控制,系統可能會要求您確認覆寫具有相同名稱的現有物件。如果這沒有問題,請選取核取方塊並繼續。如果您要保留此儲存貯體中所有版本的物件,請選取 Enable Bucket Versioning (啟用儲存貯體版本控制)。您也可以更新預設加密和 S3 物件鎖定內容。
-
在額外的檢查總和中,選擇使用現有的檢查總和函數,或是用新的檢查總和函數取代來複製物件。上傳物件時,您可以選擇指定用於驗證資料完整性的檢查總和演算法。複製物件時,您可以選擇一個新函數。如果原先沒有指定額外的檢查總和,您可以使用複製選項的部分新增一個檢查總和。
注意
即使您選擇使用相同的檢查總和函數,如果複製物件的大小超過 16 MB,則檢查總和的值可能會發生變化。檢查總和的值可能會因為計算分段上傳檢查總和而變更。如需複製物件時檢查總和會如何變化的詳細資訊,請參閱「對分段上傳使用部分檢查總和」。
若要變更檢查總和函數,請選擇Replace with a new checksum function (替換為新的檢查總和函數)。從方塊中選擇新的檢查總和函數。複製物件時,將使用指定的演算法計算和儲存新的檢查總和。
-
選擇右下角的 Copy (複製)。Amazon S3 會將您的物件複製到目的地。
本節中的範例示範如何以單一操作複製最大可達 5 GB 的物件。若要複製大於 5 GB 的物件,您必須使用多部分上傳。如需詳細資訊,請參閱使用分段上傳來複製物件。
此範例說明如何使用 Amazon S3 複製物件RESTAPI。如需有關的更多資訊 RESTAPI,請參閱 CopyObject.
此範例會將 flotsam
物件從
儲存貯體複製到 amzn-s3-demo-bucket1
jetsam
儲存貯體的
物件,並保留其中繼資料。amzn-s3-demo-bucket2
PUT /jetsam HTTP/1.1 Host:
amzn-s3-demo-bucket2
.s3.amazonaws.com x-amz-copy-source: /amzn-s3-demo-bucket1
/flotsam Authorization: AWS AKIAIOSFODNN7EXAMPLE:ENoSbxYByFA0UGLZUqJN5EUnLDg= Date: Wed, 20 Feb 2008 22:12:21 +0000
簽章已依據下列資訊產生。
PUT\r\n \r\n \r\n Wed, 20 Feb 2008 22:12:21 +0000\r\n x-amz-copy-source:/
amzn-s3-demo-bucket1
/flotsam\r\n /amzn-s3-demo-bucket2
/jetsam
Amazon S3 會傳回下列指定物件ETag的回應以及上次修改物件的時間。
HTTP/1.1 200 OK x-amz-id-2: Vyaxt7qEbzv34BnSu5hctyyNSlHTYZFMWK4FtzO+iX8JQNyaLdTshL0KxatbaOZt x-amz-request-id: 6B13C3C5B34AF333 Date: Wed, 20 Feb 2008 22:13:01 +0000 Content-Type: application/xml Transfer-Encoding: chunked Connection: close Server: AmazonS3 <?xml version="1.0" encoding="UTF-8"?> <CopyObjectResult> <LastModified>2008-02-20T22:13:01</LastModified> <ETag>"7e9c608af58950deeb370c98608ed097"</ETag> </CopyObjectResult>
您也可以使用 AWS Command Line Interface (AWS CLI) 以複製 S3 物件。如需詳細資訊,請參閱 copy-object
如需有關的資訊 AWS CLI,請參閱什麼是 AWS Command Line Interface? 在 AWS Command Line Interface 使用者指南。
如何移動物件
若要移動物件,請使用下列方法。
注意
-
如果您要移動具有使用者定義標籤的物件,您必須擁有該
s3:GetObjectTagging
權限。如果您要移動沒有使用者定義標籤但大小超過 16 MB 的物件,您還必須擁有 s3:GetObjectTagging
權限。如果目的地儲存貯體政策拒絕該
s3:GetObjectTagging
動作,物件將不會移動使用者定義的標籤,而且您會收到錯誤訊息。 -
使用 Amazon S3 主控台無法移動使用客戶提供的加密金鑰 (SSE-C) 加密的物件。若要移動使用 SSE-C 加密的物件,請使用 AWS CLI, AWS SDKs,或 Amazon S3 REST API。
-
移動資料夾時,請等待「移動」作業完成,然後再對資料夾進行其他變更。
-
您無法使用 S3 存取點別名做為 Amazon S3 主控台中移動操作的來源或目的地。
如何移動物件
-
登入到 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/
。 -
在左側導覽窗格中,選擇「值區」,然後選擇「一般用途值區」頁標。導覽至您要移動的物件所在的 Amazon S3 儲存貯體或資料夾。
-
選取要移動的物件名稱左側的核取方塊。
-
在 [動作] 功能表上選擇 [移動]。
-
若要指定目的地路徑,請選擇 Browse S3 (瀏覽 S3),導覽至目的地,然後選取目的地左側的核取方塊。選擇右下角的 Choose destination (選擇目的地)。
或者,輸入目的地路徑。
-
如果您沒有啟用儲存貯體版本控制,系統可能會要求您確認覆寫具有相同名稱的現有物件。如果這沒有問題,請選取核取方塊並繼續。如果您要保留此儲存貯體中所有版本的物件,請選取 Enable Bucket Versioning (啟用儲存貯體版本控制)。您也可以更新預設加密和物件鎖定內容。
-
選擇右下角的 Move (移動)。Amazon S3 會將您的物件移動到目的地資料夾。
注意
-
此動作會以更新的設定建立所有指定物件的複本、更新指定位置中的上次修改日期,以及將刪除標記新增至原始物件。
-
此動作會更新儲存貯體版本控制、加密、物件鎖定功能及封存物件的中繼資料。
您也可以使用 AWS Command Line Interface (AWS CLI) 以移動 S3 物件。如需詳細資訊,請參閱 mv
如需有關的資訊 AWS CLI,請參閱什麼是 AWS Command Line Interface? 在 AWS Command Line Interface 使用者指南。
重新命名物件
欲重新命名物件,請遵循下列步驟。
注意
-
重新命名物件會建立具有新上次修改日期的物件副本,然後將刪除標記新增至原始物件。
-
預設加密的儲存貯體設定會自動套用至任何未加密的指定物件。
-
您無法使用 Amazon S3 主控台使用客戶提供的加密金鑰 (SSE-C) 重新命名物件。若要重新命名使用 SSE-C 加密的物件,請使用 AWS CLI, AWS SDKs,或者 Amazon S3 REST API 複製這些具有新名稱的對象。
-
如果此儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制設定,則不會複製物件存取控制清單 (ACLs)。
-
如果要重新命名具有使用者定義標籤的物件,您必須擁有該
s3:GetObjectTagging
權限。如果要重新命名沒有使用者定義標籤但大小超過 16 MB 的物件,您還必須擁有 s3:GetObjectTagging
權限。如果目的地儲存貯體政策拒絕該
s3:GetObjectTagging
動作,物件將會重新命名,但使用者定義的標籤會從物件中移除,而且您會收到錯誤訊息。
重新命名物件
登入到 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/
。 -
在左側導覽窗格中,選擇「值區」,然後選擇「一般用途值區」頁標。導覽至包含您要重新命名之物件的 Amazon S3 儲存貯體或資料夾。
-
選取您要重新命名之物件名稱左側的核取方塊。
-
請在「操作」菜單上選擇「重命名對象」。
-
在「新物件名稱」方塊中,輸入物件的新名稱。
-
選擇保存更改在右下角。Amazon S3 重命名您的對象。