刪除 Amazon S3 物件 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

刪除 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:DeleteObjects3: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 刪除