软删除

设置 用法

本页面介绍了软删除功能,该功能会将已删除或已覆盖的对象保留一段指定的时间。软删除功能有助于保护您的数据免遭意外或恶意删除。

概览

软删除会保留已删除的对象(无论是由删除命令还是由于覆盖被删除),从而确保捕获并保留存储桶数据。存储桶创建过程中会启用软删除。

如果您在启用了软删除的情况下从存储桶中删除对象,则会发生以下情况:

  • 已删除的对象会进入软删除状态。在此状态下,您无法以任何方式修改对象,并且 Autoclass对象生命周期管理等 Cloud Storage 功能不适用于或不会影响软删除的对象。

  • 软删除的对象对存储桶不可见,除非您明确列出或恢复软删除的对象,并且无法读取软删除的对象中包含的对象数据。

  • 存储桶会将软删除的对象及被软删除时对象的元数据保留指定的保留时长(最长 90 天)。默认情况下,此保留时长为七天。

  • Cloud Storage 会在软删除保留时长过后永久删除对象。如果您在删除数据后不想继续保留数据,可以停用软删除政策。如需了解详情,请参阅管理软删除政策

添加软删除政策之前的注意事项

新存储桶会默认启用软删除,保留时长为七天。您还可以在创建存储桶期间或之后指定最长 90 天的保留时长。如果现有存储桶未启用软删除,则可以为其添加软删除政策。在为现有存储桶添加或更改软删除政策之前,请考虑以下事项:

  • 更新存储桶的软删除政策仅适用于您在软删除政策生效后删除的对象。您在更新之前删除的对象会保留它们被删除时生效的时长。

    例如,假设您在存储桶中启用软删除政策,默认保留时长为七天,然后删除对象 cat.png。在此场景中,cat.png 会作为软删除的对象保留七天,然后永久删除。即使您日后更改或移除存储桶的软删除政策,也会发生这种情况。

    • 您可以根据需要停用软删除政策。如需了解详情,请参阅管理软删除政策

    • 如果您在停用期间对包含软删除对象的存储桶停用软删除政策,则 Cloud Storage 会在永久删除之前将软删除的对象保留指定的保留时长。

    • 对存储桶停用软删除政策后,Cloud Storage 在执行删除操作后不会保留已删除的数据。

    • 您无法强制删除软删除的对象。这是为了防止恶意或意外删除。为防止存储桶进一步保留软删除的数据,我们建议您停用存储桶的软删除政策。

软删除保留时长

创建 Cloud Storage 存储桶时,软删除功能默认处于启用状态,且保留时长为七天。在保留时长内,您可以恢复已删除的对象,但保留时长结束后,Cloud Storage 会永久删除这些对象。通过更新存储桶的配置,您可以将保留时长增加到 90 天,或者通过将保留时长设置为 0 来停用该功能。启用软删除的最短天数为 7 天。

软删除保留时长以秒为单位;但为了方便,某些工具(例如 Google Cloud 控制台Google Cloud CLI)可让您使用其他时间单位设置和查看保留时长。

以下转换适用于此类情况:

  • 一天等于 86400 秒。
  • 一个月等于 31 天,2678400 秒。

对于 gcloud CLI,您可以在指定保留期限时指定整数和单位,其中单位可以是 sdm,分别表示秒、天或月。例如,7d43200s 设置保留期限为 7 天 43,200 秒(七天半)。

您可以将保留时长上限设置为 7,776,000 秒(90 天),或者保留时长下限为 604,800 秒(7 天)。使用 REST API 时,您还可以将保留时长设置为值 0,这会停用软删除政策。

恢复行为

恢复软删除对象时,Cloud Storage 会在删除该软删除对象所在的存储桶中创建该对象的副本。 恢复后对象的元数据与删除的对象的元数据相同。软删除保留时长结束后,Cloud Storage 会永久删除软删除的对象。

您可以在软删除保留时长结束之前恢复软删除的对象。

  • 为了确保恢复成功,您必须尽早开始恢复,以便在软删除保留时长内完成恢复,因为对象会在该时长结束后被永久删除。
  • 您可以通过指定对象列表来同步恢复软删除的对象,也可以创建长时间运行的操作来批量恢复在两个时间戳之间删除的对象。
  • Cloud Storage 始终会将对象恢复到最初删除对象所在的存储桶。

如果您删除项目,则 Cloud Storage 会永久删除该项目中的所有存储桶和对象。在这种情况下,您无法使用软删除功能恢复对象和存储桶。因此,请务必采取措施限制对项目级删除数据的访问权限,例如为项目设置安全锁,或将业务关键型数据备份到其他项目中的存储桶。

恢复软删除的对象版本时,Cloud Storage 会将软删除的对象的副本恢复为现行版本。如果已存在现行版本,则软删除版本的副本会替换现行版本,并且之前存在的现行版本会被软删除。在这种情况下,存储桶会包含以下对象:

  • 被替换的处于软删除状态的现行对象
  • 之前软删除对象的两个副本(一个现行副本和一个仍为软删除的副本)

所有这些对象副本都会产生存储费用,直到软删除的对象在保留时长结束后被永久删除为止。 如需详细了解与软删除的对象关联的费用,请参阅 Cloud Storage 价格

在替换现行对象时,Cloud Storage 还会复制恢复后软删除的对象的元数据。这意味着在恢复时,对象级安全元数据和存储类别等设置会设置为该特定对象版本的最近状态。

删除存储桶时,软删除的对象不会永久删除。但是,必须先恢复正确的存储桶版本,然后才能恢复其中的软删除对象。如需恢复软删除的存储桶,请与 Google Cloud 支持团队联系。

其他功能注意事项

启用软删除后,它会与其他 Cloud Storage 功能进行以下交互:

  • 对象生命周期管理

    • 对象生命周期管理规则不会影响软删除的对象。

    • 由对象生命周期管理功能删除的对象会被软删除。

  • 对象版本控制

    删除某个非当前对象后,它会被软删除。

  • XML API 分段上传

    XML API 分段上传部分不受软删除保护。

  • Autoclass

    • 系统不会评估软删除对象的 Autoclass 管理费用。

    • Autoclass 不会更改软删除对象的存储类别。

    • 恢复软删除的对象后,生成的对象会设置为 Standard Storage 存储类别。

  • 存储桶锁定对象保留锁定功能

    在对象达到保留政策要求之前,您无法删除对象,即使软删除会将对象保留足够长的时间也是如此。

  • Pub/Sub 通知

    恢复对象的软删除版本会触发 OBJECT_FINALIZE 事件。

  • 托管文件夹

    • 软删除不适用于托管式文件夹。

    • 如果您软删除了某个对象并删除了为该对象授予 IAM 政策的托管式文件夹,则您可能需要重新创建与该托管式文件夹关联的 IAM 政策,然后才能获得恢复软删除对象所需的权限。

  • 标记

    如果您创建存储桶时未自行添加软删除设置,则 Cloud Storage 默认设置是创建具有 7 天软删除保留时长的存储桶。您可以通过使用标记来更改此默认设置。该标记可以将新存储桶的默认保留时长更改为 7 到 90 天之间的任何值,也可以更改默认设置以对新存储桶停用软删除。您也可以使用标记来默认停用软删除。

后续步骤