AWS S3-超过40万个对象的大规模删除策略



几天来,我一直在寻找一种策略,该策略考虑S3中的大规模对象删除场景。例如,删除超过400K的对象。

我现在有一个结构类似于下面的桶:

  • /FOO/${customerID}//myObject.ext
  • /ACME/${customerID}//myObject.ext
  • /XPTO/${customerID}//myObject.ext

也就是说,在大多数情况下;文件夹";由客户ID

我一直在寻找一些同步、低延迟、性能好的解决方案。

我发现了一些使用生命周期规则策略的解决方案,但我必须定期为每个客户创建动态删除策略,然后将其删除

测试bucket当前已禁用版本控制(但如果需要,我可以启用它(。

我使用Java SDK创建了一个批量删除,但在某些情况下,我需要删除超过400k个对象。这最终会非常耗时。

有什么建议吗?

您要么需要使用生命周期策略,要么需要编写自己的代码来调用DeleteObjects()

每个请求可以包含1000个密钥。

缓慢的部分是列出bucket中的对象。您可能想要使用AmazonS3 Inventory,它可以提供每天或每周列出所有对象的CSV文件。您的程序可以使用库存文件作为输入。

400000个对象将因此需要400次对CCD_ 2的调用。

或者,您可以通过编程方式调用PutObjectLifecycle(),让S3为您执行所有删除操作。

最新更新