本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重新命名目錄儲存貯體中的物件
使用 RenameObject
操作,您可以在使用 S3 Express One Zone 儲存類別的目錄儲存貯體中以原子方式重新命名現有物件,而不需要任何資料移動。您可以透過將現有物件的名稱指定為來源,並將物件的新名稱指定為相同目錄儲存貯體中的目的地,來重新命名物件。在以斜線 (/
) 分隔符號字元結尾的物件上,RenameObject
API 操作不會成功。如需詳細資訊,請參閱命名 Amazon S3 物件。
無論物件的大小為何,RenameObject
操作通常以毫秒為單位完成。此功能可加速日誌檔案管理、媒體處理和資料分析等應用程式。此外, 會RenameObject
保留所有物件中繼資料屬性,包括儲存類別、加密類型、建立日期、上次修改日期和檢查總和屬性。
注意
RenameObject
僅支援存放在 S3 Express One Zone 儲存類別中的物件。
若要授予 RenameObject
操作的存取權,建議您使用 CreateSession
操作進行工作階段型授權。具體而言,您會將 s3express:CreateSession
許可授予儲存貯體政策或身分型政策中的目錄儲存貯體。然後,您可以在目錄儲存貯體上進行 CreateSession
API 呼叫,以取得工作階段字符。在您的請求標頭中使用工作階段字符,您可以對此操作提出 API 請求。工作階段字符過期後,您會進行另一個 CreateSession
API 呼叫來產生新的工作階段字符以供使用。CLI 和 AWS SDKs AWS 將建立和管理工作階段,包括自動重新整理工作階段權杖,以避免工作階段過期時服務中斷。如需授權的詳細資訊,請參閱《Amazon S3 API 參考CreateSession
》中的 。若要進一步了解區域端點 API 操作,請參閱使用 授權區域端點 API 操作CreateSession
。
如果您不想覆寫現有的物件,您可以在RenameObject
請求‘*’
中新增具有 值If-None-Match
的條件式標頭。如果物件名稱已存在,Amazon S3 會傳回412 Precondition Failed
錯誤。如需詳細資訊,請參閱 Amazon S3 API 參考中的 RenameObject
。
RenameObject
是一種區域端點 API 操作 (物件層級或資料平面操作),會記錄到 AWS CloudTrail。您可以使用 CloudTrail 來收集在目錄儲存貯體中物件上執行之RenameObject
操作的相關資訊。如需詳細資訊,請參閱針對目錄儲存貯體使用 記錄,以及 AWS CloudTrail針對目錄儲存貯體的 CloudTrail 日誌檔案範例。
S3 Express One Zone 是唯一支援 的儲存類別RenameObject
,其定價與 S3 Express One Zone 中的 PUT
、POST
、 COPY
和 LIST
請求 (每 1,000 個請求) 相同。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價
重新命名物件
若要重新命名目錄儲存貯體中的物件,您可以使用 Amazon S3 主控台、 AWS CLI、 AWS SDKs、REST API 或 Amazon S3 掛載點 (1.19.0 版或更新版本)。
重新命名目錄儲存貯體中的物件
登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在導覽窗格中,選擇儲存貯體,然後選擇目錄儲存貯體索引標籤。導覽至包含您要重新命名之物件的 Amazon S3 目錄儲存貯體。
-
選取您要重新命名之物件的核取方塊。
-
在動作功能表上,選擇重新命名物件。
-
在新物件名稱方塊中,輸入物件的新名稱。
注意
如果您指定與現有物件相同的物件名稱,操作將會失敗,Amazon S3 會傳回
412 Precondition Failed
錯誤。物件金鑰名稱長度不能超過 1,024 個位元組。物件名稱中包含的字首會計入總長度。 選擇重新命名物件。Amazon S3 會重新命名您的物件。
這些rename-object
範例示範如何使用 AWS CLI 重新命名物件。若要執行這些命令,請以您自己的資訊取代使用者輸入預留位置
下列範例示範如何使用來源物件 ETag 的條件式檢查來重新命名物件。
aws s3api rename-object \ --bucket
amzn-s3-demo-bucket--usw2-az1--x-s3
\ --keynew-file.txt
\ --rename-sourceamzn-s3-demo-bucket--usw2-az1--x-s3
/original-file.txt
\ --source-if-match "\"a1b7c3d2e5f6
\""
此命令會執行下列動作:
將物件從
original-file.txt
重新命名為amzn-s3-demo-bucket--usw2-az1--x-s3
目錄儲存貯體中的new-file.txt
。只有在來源物件的 ETag 符合 "
a1b7c3d4e5f6
" 時,才會執行重新命名。
如果 ETag 不相符,操作將會失敗並顯示412 Precondition Failed
錯誤。
下列範例示範如何使用新指定物件名稱的條件式檢查來重新命名物件。
aws s3api rename-object \ --bucket
amzn-s3-demo-bucket--usw2-az1--x-s3
\ --keynew-file.txt
\ --rename-sourceamzn-s3-demo-bucket--usw2-az1--x-s3
/original-file.txt
\ --destination-if-none-match "\"e5f3g7h8i9j0
\""
此命令會執行下列動作:
將物件從
original-file.txt
重新命名為amzn-s3-demo-bucket--usw2-az1--x-s3
目錄儲存貯體中的new-file.txt
。只有在物件存在且物件的 ETag 不符合「
e5f3g7h8i9j0
」時,才會執行重新命名操作。
如果具有新指定名稱和相符 ETag 的物件已存在,則操作會失敗並顯示412 Precondition Failed
錯誤。
您可以傳送 REST 請求來重新命名物件。如需詳細資訊,請參閱 Amazon S3 API 參考中的 RenameObject
。
從 1.19.0 版或更新版本開始,Amazon S3 的掛載點支援在 S3 Express One Zone 中重新命名物件。如需掛載點的詳細資訊,請參閱使用掛載點。