使用 PHP 开发工具包删除 Amazon S3 中的版本控制文件
Posted
技术标签:
【中文标题】使用 PHP 开发工具包删除 Amazon S3 中的版本控制文件【英文标题】:Delete versioned files in Amazon S3 using PHP SDK 【发布时间】:2014-09-13 03:01:07 【问题描述】:我的任务是清理 S3 存储桶上未引用的图像,并发现我们已打开版本控制。
我们目前使用的是 php DSK(版本 '2006-03-01'),according to the documentation 似乎不直接支持删除特定文件的所有版本。
我的问题是这样的:
使用 AWS PHP SDK 中可用的方法删除 S3 存储桶中的版本化文件的正确方法是什么?
可能,我正在考虑使用 listObjectVersions(),然后对每个都运行删除,但我不是 100% 可行。
感谢任何帮助。
【问题讨论】:
【参考方案1】:正如您所提到的,您需要获取所有对象版本的列表并确定要删除哪些版本。然后,您可以使用单个 API 调用一次删除多个版本(最多 1000 个),而不是逐个删除每个版本。
请参阅Delete Multiple Objects 和Deleting Multiple Objects Using the AWS SDK for PHP 了解更多详情。
不要尝试混合列出和删除操作(列出 1000 个版本、删除 1000、再次列出、再次删除……),因为由于 S3 的最终一致性模型,您最终会得到奇怪的结果。
【讨论】:
感谢您的回复。这听起来很对。我会试一试,看看它是否有效!以上是关于使用 PHP 开发工具包删除 Amazon S3 中的版本控制文件的主要内容,如果未能解决你的问题,请参考以下文章
Amazon S3 设置元数据使用 AWS SDK PHP v2 upload() 失败
出现错误:getaddrinfo EAI_AGAIN 使用 Amazon S3 开发工具包