複製、移動和重新命名物件
CopyObject 操作會為已儲存在 Amazon S3 中的物件建立複本。
單一非敗即成 (atomic operation) 操作最多可以為 5 GB 的物件建立複本。但若複製的物件大於 5 GB,則必須使用 AWS CLI 或 AWS SDK 進行分段上傳。如需更多詳細資訊,請參閱 使用分段上傳來複製物件。
注意
若要維持使用分段上傳作業時所上傳之物件的效能優勢,您必須使用 AWS CLI 或 AWS SDK,而非 S3 主控台,然後使用分段上傳來複製物件。如需更多詳細資訊,請參閱 使用分段上傳來複製物件。
使用 CopyObject 操作,您可以:
-
為物件建立其他複本。
-
透過複製物件並刪除原始物件來重新命名物件。
-
將物件從一個儲存貯體複製到或移至另一個儲存貯體,包括跨 AWS 區域 (例如從
us-west-1到eu-west-2)。當您移動物件時,Amazon S3 會將物件複製到指定的目的地,然後刪除來源物件。注意
跨 AWS 區域複製或移動物件會產生頻寬費用。如需詳細資訊,請參閱 Amazon S3 定價
。 -
變更物件中繼資料。每個 Amazon S3 物件都有中繼資料。此中繼資料是一組名稱/值對。您可以在上傳物件時設定物件中繼資料。上傳物件之後,即無法修改物件中繼資料。修改物件中繼資料唯一的方式是製作物件的複本,再設定中繼資料。若要執行這項操作,請在複製操作中,將同一個物件設定為來源和目標。
其中一些物件中繼資料是系統中繼資料,另一些則是使用者定義的中繼資料。您可以控制其中一些系統中繼資料。例如,您可以控制要用於物件的儲存類別和伺服器端加密類型。當您複製物件時,也會一併複製使用者控制的系統中繼資料及使用者定義的中繼資料。Amazon S3 會重設系統控制的中繼資料。例如,複製物件時,Amazon S3 會重設複製物件的建立日期。您不需要在複製請求中,設定這些由系統所控制的中繼資料值。
複製物件時,可能會決定要更新部分的中繼資料值。例如,若來源物件設定為使用 S3 Standard 儲存體,可以為物件複本選擇使用 S3 Intelligent-Tiering。也有可能決定要改變來源物件上一部分的使用者定義中繼資料值。如果選擇在複製期間更新任何物件之使用者可設定的中繼資料 (系統或使用者定義),則您必須在要求中明確指定存在於來源物件上之所有使用者可設定的中繼資料,即使只變更其中一個中繼資料值亦然。
注意
使用 Amazon S3 主控台複製物件時,可能會收到錯誤訊息
「複製的中繼資料無法驗證。」主控台會使用標頭來擷取和設定物件的中繼資料。如果您的網路或瀏覽器組態修改網路請求,此行為可能會導致意外中繼資料 (例如修改的Cache-Control標頭) 寫入您複製的物件。Amazon S3 無法驗證此非預期的中繼資料。若要解決此問題,請檢查您的網路和瀏覽器組態,確保標頭不會遭到修改,例如
Cache-Control。如需詳細資訊,請參閱共同責任模式。如需物件中繼資料的詳細資訊,請參閱「使用物件中繼資料」。
複製已封存和已還原的物件
若來源物件封存在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 中,即必須先還原暫存副本,才可將物件複製到其他儲存貯體。如需封存物件的資訊,請參閱 使用封存的物件。
Amazon S3 主控台不支援對 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 儲存類別中已還原的物件進行複製操作。若要複製這些已還原的物件,請使用 AWS Command Line Interface (AWS CLI)、AWS SDK 或 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 不會直接複製檢查總和的值。所有沒有檢查總和及指定目的地檢查總和演算法的複製物件都會自動取得 CRC-64NVME 檢查總和演算法。如需如何計算此檢查總和的詳細資訊,請參閱「在 Amazon S3 中使用分段上傳來上傳和複製物件」。
在單一請求中複製多個物件
若要透過單一請求複製多個 Amazon S3 物件,您還可以使用 S3 Batch Operations。您可以為 SS3 Batch Operations 提供一份要進行操作的物件清單。S3 批次操作會呼叫相應的 API 操作來執行指定操作。單一批次作業任務可在包含數 EB 資料的數十億個物件上執行指定的操作。
S3 Batch Operations 功能會追蹤進度、傳送通知,並存放所有動作的詳細完成報告,提供完整受管、可稽核、無伺服器的體驗。您可以透過 Amazon S3 主控台、AWS CLI、AWS、SDK 或 REST API 使用 S3 批次操作。如需更多詳細資訊,請參閱 S3 批次作業基礎知識。
將物件複製到目錄儲存貯體
如需將物件複製到目錄儲存貯體的資訊,請參閱從目錄儲存貯體複製物件或將物件複製到目錄儲存貯體。如需搭配目錄儲存貯體使用 Amazon S3 Express One Zone 儲存類別的資訊,請參閱S3 Express One Zone和使用目錄儲存貯體。
複製物件
若要複製物件,請使用下列方法。
注意
當您使用主控台複製物件時,您有下列限制:
-
如果您的物件小於 5 GB,您可以複製物件。如果您的物件大於 5 GB,您必須使用 AWS CLI 或 AWS SDK 來複製物件。
-
如需複製物件所需的其他許可清單,請參閱Amazon S3 API 操作所需的許可。如需授予此許可的範例政策,請參閱Amazon S3 的身分型政策範例。
-
Copy動作會套用至指定資料夾中 (指定字首) 的所有物件。在動作進行期間加入這些資料夾的物件可能會受到影響。 -
Amazon S3 主控台不支援跨區域複製 SSE-KMS 加密的物件。若要跨區域複製 SSE-KMS 加密的物件,請使用 AWS CLI、AWS SDK 或 Amazon S3 REST API。
-
使用客戶提供的加密金鑰 (SSE-C) 加密的物件無法經由 S3 主控台複製。若要複製 SSE-C 加密的物件,請使用 AWS CLI、AWS SDK 或 Amazon S3 REST API。
-
複製的物件不會保留原始物件的物件鎖定設定。
-
如果複製物件的來源儲存貯體使用儲存貯體擁有者強制執行的 S3 物件擁有權設定,則不會將物件 ACL 複製到指定的目的地。
-
如果您想要將物件複製到使用儲存貯體擁有者強制執行之 S3 物件擁有權設定的儲存貯體,請確定來源儲存貯體也使用儲存貯體擁有者強制執行的設定,或移除其他 AWS 帳戶和群組的任何物件 ACL 授權。
複製物件
登入 AWS 管理主控台,並開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在左側導覽窗格中,選擇一般用途儲存貯體或目錄儲存貯體。
-
在儲存貯體清單中,選擇包您要複製之物件的儲存貯體名稱。
-
選取物件名稱左側的核取方塊,以複製這些物件。
-
從動作功能表上顯示的選項清單中,選擇複製。
-
選取目的地類型和目的地帳戶。若要指定目的地路徑,請選擇 Browse S3 (瀏覽 S3),導覽至目的地,然後選取目的地左側的核取方塊。選擇右下角的 Choose destination (選擇目的地)。
或者,輸入目的地路徑。
-
如果您「未」啟用儲存貯體版本控制,您會看到警告,建議您啟用儲存貯體版本控制,以協助防止意外覆寫或刪除物件。如果您要保留此儲存貯體中所有版本的物件,請選取 Enable Bucket Versioning (啟用儲存貯體版本控制)。您也可以在目的地詳細資訊中檢視預設加密和 S3 物件鎖定內容。
-
在其他複製設定下,選擇複製來源設定、不要指定設定或指定設定。複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。
-
選擇右下角的 Copy (複製)。Amazon S3 會將您的物件複製到目的地。
本節中的範例示範如何以單一操作複製最大可達 5 GB 的物件。若要複製大於 5 GB 的物件,則必須使用分段上傳。如需更多詳細資訊,請參閱 使用分段上傳來複製物件。
此範例說明如何使用 Amazon S3 REST API 複製物件。如需 REST API 的詳細資訊,請參閱 CopyObject。
此範例會將 flotsam 物件從 儲存貯體複製到 amzn-s3-demo-bucket1jetsam 儲存貯體的 物件,並保留其中繼資料。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 物件。如需詳細資訊,請參閱《AWS CLI 命令參考》中的 copy-object
如需 AWS CLI 的資訊,請參閱《AWS Command Line Interface使用者指南》中的什麼是 AWS Command Line Interface?。
如何移動物件
若要移動物件,請使用下列方法。
注意
-
如果您的物件小於 5 GB,您可以移動物件。如果您的物件大於 5 GB,您必須使用 AWS CLI 或 AWS SDK 來移動物件。
-
如需移動物件所需的其他許可清單,請參閱Amazon S3 API 操作所需的許可。如需授予此許可的範例政策,請參閱Amazon S3 的身分型政策範例。
-
使用客戶提供的加密金鑰 (SSE-C) 加密的物件無法經由 Amazon S3 主控台移動。若要移動 SSE-C 加密的物件,請使用 AWS CLI、AWS SDK 或 Amazon S3 REST API。
-
移動資料夾時,請等待移動操作完成,再對資料夾進行其他變更。
-
您無法在 Amazon S3 主控台中使用 S3 存取點別名作為移動操作的來源或目的地。
如何移動物件
-
登入 AWS 管理主控台,並開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在左側導覽窗格中,選擇 Buckets (儲存貯體)。導覽至您要移動的物件所在的 Amazon S3 儲存貯體或資料夾。
-
選取要移動之物件的核取方塊。
-
在動作功能表上,選擇移動。
-
若要指定目的地路徑,請選擇瀏覽 S3,導覽至目的地,然後選取目的地核取方塊。選擇 Choose destination (選擇目的地)。
或者,輸入目的地路徑。
-
如果您「未」啟用儲存貯體版本控制,您會看到警告,建議您啟用儲存貯體版本控制,以協助防止意外覆寫或刪除物件。如果您要保留此儲存貯體中所有版本的物件,請選取 Enable Bucket Versioning (啟用儲存貯體版本控制)。您也可以在目的地詳細資訊中檢視預設加密和物件鎖定內容。
-
在其他複製設定下,選擇複製來源設定、不要指定設定或指定設定。複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。
-
選擇右下角的 Move (移動)。Amazon S3 會將您的物件移動到目的地資料夾。
您也可以使用 AWS Command Line Interface (AWS CLI) 移動 S3 物件。如需詳細資訊,請參閱《AWS CLI 命令參考》中的 mv
如需 AWS CLI 的資訊,請參閱《AWS Command Line Interface使用者指南》中的什麼是 AWS Command Line Interface?。
重新命名物件
若要重新命名物件,請使用下列程序。
注意
-
如果您的物件小於 5 GB,您可以重新命名物件。若要重新命名大於 5 GB 的物件,您必須使用 AWS CLI 或 AWS SDK 複製物件並提供新名稱,然後刪除原始物件。
-
如需複製物件所需的其他許可清單,請參閱Amazon S3 API 操作所需的許可。如需授予此許可的範例政策,請參閱Amazon S3 的身分型政策範例。
-
重新命名物件會建立具有新上次修改日期的物件複本,然後將刪除標記新增至原始物件。
-
預設加密的儲存貯體設定會自動套用至任何未加密的指定物件。
-
您無法使用 Amazon S3 主控台重新命名具有客戶提供加密金鑰 (SSE-C) 的物件。若要重新命名 SSE-C 加密的物件,請使用 AWS CLI、AWS SDK 或 Amazon S3 REST API 複製這些物件並提供新名稱。
-
如果此儲存貯體使用儲存貯體擁有者強制執行的 S3 物件擁有權設定,則不會複製物件存取控制清單 (ACL)。
重新命名物件
登入 AWS 管理主控台,並開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在導覽窗格中,選擇儲存貯體,然後選擇一般用途儲存貯體索引標籤。導覽至包含您要重新命名之物件的 Amazon S3 儲存貯體或資料夾。
-
選取您要重新命名之物件的核取方塊。
-
在動作功能表上,選擇重新命名物件。
-
在新物件名稱方塊中,輸入物件的新名稱。
-
在其他複製設定下,選擇複製來源設定、不要指定設定或指定設定。複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。
-
選擇儲存變更。Amazon S3 會重新命名您的物件。