本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
刪除 Amazon S3 物件
您可以使用 Amazon S3 主控台、 AWS SDKs、 AWS Command Line Interface (AWS CLI) 或 REST Word,直接從 Amazon S3 刪除一或多個物件API。例如,如果您要收集日誌檔案,最好在不再需要它們時將其刪除。您可以設定 S3 生命週期規則,以自動刪除日誌檔案等物件。
若要刪除物件,您可以使用下列其中一個 API 操作:
-
刪除單一物件 – Amazon S3 提供
DELETE
(DeleteObject
) API 操作,您可以用來刪除單一 HTTP 請求中的一個物件。 -
刪除多個物件 – Amazon S3 提供多物件刪除 (
DeleteObjects
) API 操作,您可以在單一 HTTP 請求中最多刪除 1,000 個物件。
從未啟用版本控制的儲存貯體刪除物件時,您只能提供物件金鑰名稱。不過,從已啟用版本控制的儲存貯體刪除物件時,您可以提供物件的版本 ID,以刪除物件的特定版本。
刪除物件之前要考慮的最佳實務
刪除物件之前,請考慮下列最佳實務:
-
啟用儲存貯體版本控制。S3 版本控制新增了對簡單
DeleteObject
請求的保護,以防止意外刪除。對於版本控制的儲存貯體,如果您刪除物件的目前版本,或者刪除請求未指定特定版本 ID,Amazon S3 不會永久刪除物件。反之,S3 新增刪除標記,發出物件的軟刪除。然後,刪除標記會成為具有新版本 ID 的物件的目前 (或最新版本) 版本。如需詳細資訊,請參閱從已啟用版本控制的儲存貯體刪除物件版本。 -
如果您想要刪除大量物件,或根據物件建立日期以程式設計方式刪除物件,請在儲存貯體上設定 S3 生命週期組態。若要監控這些刪除,建議您使用 S3 生命週期事件通知。當您設定 S3 生命週期通知時,
s3:LifecycleExpiration:Delete
事件類型會在刪除儲存貯體中的物件時通知您。當 S3 生命週期組態永久刪除物件版本時,它也會通知您。當 S3 生命週期建立刪除標記時,s3:LifecycleExpiration:DeleteMarkerCreated
事件類型會通知您。當刪除版本控制儲存貯體中物件的目前版本時,就會建立刪除標記。 -
在對 S3 生命週期組態進行任何更新之前,請確認生命週期已完成所有預期物件的動作。如需詳細資訊,請參閱在儲存貯體上設定 S3 生命週期組態中的更新、停用或刪除生命週期規則一節。
注意
S3 生命週期規則必須套用至物件的正確子集,以防止意外刪除。您可以在建立生命週期規則時,依字首、物件標籤或物件大小篩選物件。
-
考慮限制使用者從儲存貯體中移除或刪除物件。若要限制使用者,您需要在 Amazon S3 儲存貯體政策中明確拒絕使用者執行下列動作的許可:
-
s3:DeleteObject
、s3:DeleteObjectVersion
(控制誰可以使用 API 請求刪除物件) -
s3:PutLifecycleConfiguration
(控制誰可以新增 S3 生命週期過期規則)
-
-
考慮使用 S3 複寫來建立資料的多個複本,並一次將其複寫到多個位置。您可以視需要選擇任意數量的目的地儲存貯體。此外,如果意外刪除物件,您仍然會擁有資料的副本。
從已啟用版本控制的儲存貯體刪除物件
如果您的儲存貯體已啟用版本控制,則相同物件的多個版本可以存在於儲存貯體中。使用啟用版本控制的儲存貯體時,API Delete
操作會啟用下列選項:
-
指定未使用版本控制的刪除要求 — 您只指定物件的索引鍵,而非版本 ID。在此情況下,Amazon S3 會在物件的目前版本上建立刪除標記,並在回應中傳回其版本 ID。這會讓物件從儲存貯體中消失。如需物件版本控制與刪除標記概念的資訊,請參閱「使用 S3 版本控制保留多個版本的物件」。
-
指定版本控制的刪除請求 – 同時指定金鑰和版本 ID。在這種情況下,可能會產生下列結果:
-
如果版本 ID 對應至特定物件版本,則 Amazon S3 會刪除物件的特定版本。
-
如果版本 ID 映射到物件的刪除標記,Amazon S3 會刪除刪除標記。當刪除標記刪除時,物件會重新出現在您的儲存貯體中。
-
從版本控制暫停儲存貯體刪除物件
如果您的儲存貯體已暫停版本控制,則 API Delete
操作對啟用版本控制儲存貯體的行為方式相同 (除非目前版本具有 null 版本 ID)。如需詳細資訊,請參閱刪除暫停版本控制之儲存貯體中的物件。
從未版本儲存貯體刪除物件
如果您的儲存貯體未版本,您可以在 API Delete
操作中指定物件的金鑰,Amazon S3 將永久刪除物件。若要防止永久刪除物件,請啟用儲存貯體版本控制。
從啟用 MFA 的儲存貯體刪除物件
從啟用多重要素驗證 (MFA) 的儲存貯體刪除物件時,請注意下列事項:
-
如果您提供的 MFA 權杖無效,請求一律會失敗。
-
如果您有啟用 MFA 的儲存貯體,而且您提出版本控制的刪除請求 (您提供物件金鑰和版本 ID),則如果您未提供有效的 MFA 權杖,則請求會失敗。此外,在啟用 MFA
Delete
的儲存貯體上使用多物件 API 操作時,如果任何刪除是版本控制的刪除請求 (即指定物件金鑰和版本 ID),則如果您不提供 MFA 權杖,整個請求會失敗。
但是,在下列情況下,要求會成功:
-
如果您有啟用 MFA 的儲存貯體,而且您提出非版本刪除請求 (您不會刪除版本化物件),而且您未提供 MFA 權杖,則刪除會成功。
-
如果您有一個多物件刪除請求,該請求只指定從啟用 MFA 的儲存貯體中刪除的非版本物件,而且您未提供 MFA 字符,則刪除會成功。
如需刪除 MFA 的相關資訊,請參閱 設定 MFA 刪除。