我在Amazon S3中存储了很多图片, 使用ruby lib(http://amazon.rubyforge.org/)
我不在乎超过1周的照片,然后在S3中释放空间我必须删除那些照片。
我知道有一种方法可以删除某个存储桶中的对象:
S3Object.delete 'photo-1.jpg', 'photos'
有没有办法自动删除超过一周的图片?
如果它不存在,我将不得不写一个守护进程: - (
谢谢
更新:现在有可能,查看Roberto的答案。
答案 0 :(得分:43)
您可以使用 Amazon S3对象过期策略
Amazon S3 - Object Expiration | AWS Blog
如果使用S3存储日志文件或其他受限制的文件 一生,你可能不得不在内部构建某种机制 跟踪对象的年龄并从一定时间开始批量删除过程 时间。虽然我们新的多对象删除功能将帮助您 让这个过程更快更容易,我们想要更进一步。
S3的新对象到期功能允许您定义规则 安排在预定义的时间段后删除对象。 规则在您的生命周期配置策略中指定 适用于水桶。您可以通过S3 API或更新此策略 来自AWS管理控制台。
Object Expiration | AWS S3 Documentation
您存储在Amazon S3存储桶中的某些对象可能具有 明确的生命周期。例如,您可能会定期上传 记录到您的存储桶,但您可能需要保留这些日志 具体的时间。您可以使用对象生命周期 管理以指定存储桶中对象的生命周期;当。。。的时候 对象的生命周期到期,Amazon S3将对象排队 删除。
Ps:点击链接了解更多信息。
答案 1 :(得分:1)
如果您可以访问本地数据库,则可以轻松地记录每个图像(您可能已根据应用程序执行此操作),然后您可以执行简单查询以检索整个列表并将其删除。这比直接查询S3快得多,但确实需要某种本地存储。
答案 2 :(得分:0)
不幸的是,亚马逊没有提供基于一组特定标准的自动删除API。
您需要编写一个遍历所有照片的守护程序,并选择符合条件的守护程序,然后逐个删除它们。