本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
複製、移動和重新命名物件
CopyObject
操作會建立已存放在 Amazon S3 中的物件複本。
您可以在單一原子操作中建立最多 5 GB 的物件複本。不過,若要複製大於 5 GB 的物件,您必須使用 AWS CLI 或 進行分段上傳 AWS SDKs。如需詳細資訊,請參閱使用分段上傳來複製物件。
使用 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 儲存類別中的還原物件不支援 Amazon S3S3 主控台中的複製操作。若要複製這些還原的物件,請使用 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 批次操作。您可以為 S3 批次操作提供一份要進行操作的物件清單。S3 Batch Operations 會呼叫個別API操作來執行指定的操作。單一批次作業任務可在包含數 EB 資料的數十億個物件上執行指定的操作。
S3 批次操作功能會追蹤進度、傳送通知,並存放所有動作的詳細完成報告,提供完整受管、可稽核、無伺服器的體驗。您可以透過 Amazon S3 主控台 AWS CLI AWS SDKs、 或 REST 使用 S3 批次操作API。 Amazon S3 如需詳細資訊,請參閱S3 批次作業基礎知識。
將物件複製到目錄儲存貯體
如需將物件複製到目錄儲存貯體的資訊,請參閱 將物件複製到目錄儲存貯體。如需將 Amazon S3 Express One Zone 儲存類別與目錄儲存貯體搭配使用的相關資訊,請參閱 目錄儲存貯體和 S3 Express One Zone和 目錄儲存貯體概觀。
複製物件
若要複製物件,請使用下列方法。
注意
使用主控台複製物件時的限制如下:
-
如果您的物件小於 5 GB,您可以複製物件。如果您的物件大於 5 GB,則必須使用 AWS CLI或 AWS SDKs 複製物件。
-
如需複製物件所需的其他許可清單,請參閱 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 物件擁有權的儲存貯體擁有者強制執行設定,則物件ACLs將不會複製到指定的目的地。
-
如果您想要將物件複製到使用 S3 物件擁有權之儲存貯體擁有者強制執行設定的儲存貯體,請確定來源儲存貯體也使用儲存貯體擁有者強制執行設定,或移除任何物件ACL授予其他 AWS 帳戶和群組。
複製物件
登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
在左側導覽窗格中,選擇儲存貯體 ,然後選擇一般用途儲存貯體標籤。導覽至 Amazon S3 儲存貯體或資料夾,其中包含您要複製的物件。
-
選取物件名稱左側的核取方塊,以複製這些物件。
-
在動作功能表中,從出現的選項清單中選擇複製。
-
選取目的地類型和目的地帳戶。若要指定目的地路徑,請選擇 Browse S3 (瀏覽 S3),導覽至目的地,然後選取目的地左側的核取方塊。選擇右下角的 Choose destination (選擇目的地)。
或者,輸入目的地路徑。
-
如果您沒有啟用儲存貯體版本控制,您會看到警告,建議您啟用儲存貯體版本控制,以協助防止意外覆寫或刪除物件。如果您要保留此儲存貯體中所有版本的物件,請選取 Enable Bucket Versioning (啟用儲存貯體版本控制)。您也可以在目的地詳細資訊 中檢視預設加密和 S3 物件鎖定屬性。
-
在其他複製設定 下,選擇您是否要複製來源設定 、不要指定設定 或指定設定 。複製來源設定是預設選項。如果您只想要在沒有來源設定屬性的情況下複製物件,請選擇不要指定設定 。選擇指定設定以指定儲存類別、ACLs、物件標籤、中繼資料、伺服器端加密和其他總和檢查碼的設定。
-
選擇右下角的 Copy (複製)。Amazon S3 會將您的物件複製到目的地。
本節中的範例示範如何以單一操作複製最大可達 5 GB 的物件。若要複製大於 5 GB 的物件,您必須使用分段上傳。如需詳細資訊,請參閱使用分段上傳來複製物件。
此範例說明如何使用 Amazon S3 複製物件RESTAPI。如需 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 物件。如需詳細資訊,請參閱 copy-object
如需 的相關資訊 AWS CLI,請參閱 使用者指南 中的什麼是 AWS Command Line Interface?。 AWS Command Line Interface
如何移動物件
若要移動物件,請使用下列方法。
注意
-
如果您的物件小於 5 GB,您可以移動物件。如果您的物件大於 5 GB,則必須使用 AWS CLI或 AWS SDKs 來移動物件。
-
如需移動物件所需的其他許可清單,請參閱 Amazon S3 API操作的必要許可。如需授予此許可的政策範例,請參閱 Amazon S3 的身分型政策範例。
-
使用客戶提供的加密金鑰 (SSE-C) 加密的物件無法使用 Amazon S3 主控台移動。若要移動使用 SSE-C 加密的物件,請使用 AWS CLI AWS SDKs、 或 Amazon S3 REST API。
-
移動資料夾時,請等待移動操作完成,然後再對資料夾進行其他變更。
-
您無法在 Amazon S3 主控台中使用 S3 存取點別名作為移動操作的來源或目的地。 Amazon S3
如何移動物件
-
登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
在導覽窗格中,選擇儲存貯體 ,然後選擇一般用途儲存貯體索引標籤。導覽至您要移動的物件所在的 Amazon S3 儲存貯體或資料夾。
-
選取您要移動之物件的核取方塊。
-
在動作功能表中,選擇移動 。
-
若要指定目的地路徑,請選擇瀏覽 S3、導覽至目的地,然後選擇目的地核取方塊。選擇 Choose destination (選擇目的地)。
或者,輸入目的地路徑。
-
如果您沒有啟用儲存貯體版本控制,您會看到警告,建議您啟用儲存貯體版本控制,以協助防止意外覆寫或刪除物件。如果您要保留此儲存貯體中所有版本的物件,請選取 Enable Bucket Versioning (啟用儲存貯體版本控制)。您也可以在目的地詳細資訊 中檢視預設加密和物件鎖定屬性。
-
在其他複製設定 下,選擇您是否要複製來源設定 、不要指定設定 或指定設定 。複製來源設定是預設選項。如果您只想要在沒有來源設定屬性的情況下複製物件,請選擇不要指定設定 。選擇指定設定以指定儲存類別、ACLs、物件標籤、中繼資料、伺服器端加密和其他總和檢查碼的設定。
-
選擇右下角的 Move (移動)。Amazon S3 會將您的物件移動到目的地資料夾。
您也可以使用 AWS Command Line Interface (AWS CLI) 來移動 S3 物件。如需詳細資訊,請參閱 mv
如需 的相關資訊 AWS CLI,請參閱 使用者指南 中的什麼是 AWS Command Line Interface?。 AWS Command Line Interface
重新命名物件
若要重新命名物件,請使用下列程序。
注意
-
如果您的物件小於 5 GB,您可以重新命名物件。若要重新命名大於 5 GB 的物件,您必須使用 AWS CLI或 AWS SDKs 以新名稱複製物件,然後刪除原始物件。
-
如需複製物件所需的其他許可清單,請參閱 Amazon S3 API操作的必要許可。如需授予此許可的政策範例,請參閱 Amazon S3 的身分型政策範例。
-
重新命名物件會建立具有新上次修改日期的物件複本,然後將刪除標記新增至原始物件。
-
預設加密的儲存貯體設定會自動套用至任何未加密的指定物件。
-
您無法使用 Amazon S3 主控台重新命名具有客戶提供加密金鑰 (SSE-C) 的物件。若要重新命名使用 SSE-C 加密的物件,請使用 AWS CLI AWS SDKs、 或 Amazon S3 RESTAPI以新名稱複製這些物件。
-
如果此儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制執行設定,則不會複製物件存取控制清單 (ACLs)。
重新命名物件
登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
在導覽窗格中,選擇儲存貯體 ,然後選擇一般用途儲存貯體索引標籤。導覽至包含您要重新命名之物件的 Amazon S3 儲存貯體或資料夾。
-
選取您要重新命名之物件的核取方塊。
-
在動作功能表中,選擇重新命名物件 。
-
在新物件名稱方塊中,輸入物件的新名稱。
-
在其他複製設定 下,選擇您是否要複製來源設定 、不要指定設定 或指定設定 。複製來源設定是預設選項。如果您只想要在沒有來源設定屬性的情況下複製物件,請選擇不要指定設定 。選擇指定設定以指定儲存類別、ACLs、物件標籤、中繼資料、伺服器端加密和其他總和檢查碼的設定。
-
選擇 Save changes (儲存變更)。Amazon S3 會重新命名物件。