如何删除受版本控制的 S3 对象

如果为 S3 存储分段启用了版本控制,则 StorageGRID 在响应删除请求时,无论这些请求来自 S3 客户端, S3 存储分段生命周期到期还是 ILM 策略要求,均应遵循 Amazon S3 行为。

对对象进行版本控制时,对象删除请求不会删除对象的当前版本,也不会释放空间。相反 ,对象删除请求只会创建一个删除标记作为对象的当前版本,从而使对象的先前版本不是最新版本。

即使尚未删除此对象, StorageGRID 其行为仍与当前版本的对象不再可用一样。对该对象的请求将返回 404 NotFound。但是,由于未删除非当前对象数据,因此指定非当前对象版本的请求可能会成功。

要在删除受版本控制的对象时释放空间,必须执行以下操作之一:
  • S3 客户端请求:在 S3 删除对象请求(delete /object® versionId=ID)中指定对象版本号。请注意,此请求仅删除指定版本的对象副本(其他版本仍占用空间)。
  • 存储分段生命周期:在 存储分段生命周期配置中使用 NoncurrentVersionExpiration 操作。满足指定的非当前目标数量后, StorageGRID 将永久删除非当前对象版本的所有副本。无法恢复这些对象版本。
  • ILM:将两个 ILM 规则添加到 ILM 策略中。在 Noncurrent Time 第一个规则中使用作为参考时间,以匹配对象的非最新版本。Ingest Time 在第二个规则中使用以匹配当前版本。Noncurrent Time 规则必须显示在 Ingest Time 规则上方的策略中。