使用PHP SDK删除AmazonS3中的版本文件


Delete versioned files in Amazon S3 using PHP SDK

我的任务是清理S3存储桶上未引用的图像,发现我们已经打开了版本控制。

我们目前使用的是PHP DSK(版本"2006-03-01"),根据文档,它似乎不直接支持删除特定文件的所有版本。

我的问题是:

使用AWS PHP SDK中提供的方法删除S3存储桶中的版本文件的正确方法是什么?

我可能会考虑使用listObjectVersions(),然后对每个版本运行删除,但我不能100%做到这一点。

感谢您的帮助。

如前所述,您需要获得所有对象版本的列表,并确定要删除哪些版本。然后,您可以使用单个API调用一次删除多个版本(最多1000个),而不是逐个删除每个版本。

有关更多详细信息,请参阅删除多个对象和删除多个使用AWS SDK for PHP的对象。

不要试图混合列表&删除操作(列出1000个版本,删除1000个,再次列出,再次删除,…),因为S3的最终一致性模型会导致奇怪的结果。