本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
複製、移動和重新命名物件
CopyObject
操作會建立已存放在 Amazon S3 中的物件複本。
單一非敗即成 (atomic operation) 操作最多可以為 5 GB 的物件建立複本。不過,若要複製大於 5 GB 的物件,您必須使用 AWS CLI 或 AWS SDKs 進行分段上傳。如需詳細資訊,請參閱使用分段上傳來複製物件。
注意
若要維持您使用分段上傳上傳之物件的效能優勢,您必須使用 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 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 不會直接複製檢查總和的值。所有沒有檢查總和及指定目的地檢查總和演算法的複製物件都會自動取得 CRC-64NVME
檢查總和演算法。如需如何計算此檢查總和的詳細資訊,請參閱「在 Amazon S3 中使用分段上傳來上傳和複製物件」。
在單一請求中複製多個物件
若要透過單一請求複製多個 Amazon S3 物件,您還可以使用 S3 Batch Operations。您可以為 S3 批次操作提供一份要進行操作的物件清單。S3 批次操作會呼叫相應的 API 操作來執行指定操作。單一批次作業任務可在包含數 EB 資料的數十億個物件上執行指定的操作。
S3 批次操作功能會追蹤進度、傳送通知,並存放所有動作的詳細完成報告,提供完整受管、可稽核、無伺服器的體驗。您可以透過 Amazon S3 主控台、 AWS CLI、 AWS SDKs或 REST API 使用 S3 批次操作。 Amazon 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 物件擁有權設定的儲存貯體,請確定來源儲存貯體也使用儲存貯體擁有者強制執行的設定,或移除任何物件 ACL 授予其他 AWS 帳戶和群組。
複製物件
登入 AWS Management Console ,並在 https://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-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 物件。如需詳細資訊,請參閱 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 SDKs 或 Amazon S3 REST API。
-
移動資料夾時,請等待移動操作完成,再對資料夾進行其他變更。
-
您無法在 Amazon S3 主控台中使用 S3 存取點別名作為移動操作的來源或目的地。
如何移動物件
-
登入 AWS Management Console 並開啟位於 https://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 SDKs 或 Amazon S3 REST API 以新名稱複製這些物件。
-
如果此儲存貯體使用儲存貯體擁有者強制執行的 S3 物件擁有權設定,則不會複製物件存取控制清單 (ACL)。
重新命名物件
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 -
在導覽窗格中,選擇儲存貯體,然後選擇一般用途儲存貯體索引標籤。導覽至包含您要重新命名之物件的 Amazon S3 儲存貯體或資料夾。
-
選取您要重新命名之物件的核取方塊。
-
在動作功能表上,選擇重新命名物件。
-
在新物件名稱方塊中,輸入物件的新名稱。
-
在其他複製設定下,選擇複製來源設定、不要指定設定或指定設定。複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。
-
選擇儲存變更。Amazon S3 會重新命名您的物件。