2010-07-13 43 views
7

我使用的是红宝石LIB(http://amazon.rubyforge.org/自动删除对象比亚马逊S3 n天(如何?)

我不在乎超过1周的照片存储在Amazon S3中, 许多图像年纪大了,那么为了释放S3中的空间,我必须删除这些照片。

我知道有删除某一桶对象的方法:

S3Object.delete 'photo-1.jpg', 'photos' 

是否有办法来自动删除超过一周年长的形象呢?

如果它不存在,我会写一个守护进程做:-(

谢谢


更新:现在它是可能的,检查Roberto的答案

+0

有一个更好的答案,然后标记的一个... – 2014-07-22 12:07:56

回答

1

不幸的是,亚马逊没有提供基于一组特定的标准自动删除的API。

你需要写一个后台程序,通过所有的照片去并选择那些符合您的标准,然后逐个删除它们。

+3

警告! - 在下面检查@ Roberto的帖子。现在可以完成。 – digiguru 2014-02-20 12:59:24

1

如果您有权访问本地数据库,只需简单地记录每个图像(您可能已经根据您的应用程序进行了此操作),然后您可以执行一个简单的查询来检索整个列表并将其删除。这比直接查询S3快得多,但确实需要某种本地存储。

42

如果使用S3存储日志文件或具有有限 一辈子其他文件可以使用亚马逊S3对象到期策略

Amazon S3 - Object Expiration | AWS Blog

,你可能不得不建立一些内部机制到 跟踪对象的年龄,并启动批量删除过程从时间到 时间。尽管我们新的多对象删除功能将帮助您更快更轻松地完成此过程,但我们希望继续走得更远。

S3的新对象过期功能允许您定义规则到 计划在预定义的时间段后删除对象。 规则在生命周期配置策略中指定,您将 应用于存储段。您可以通过AWS管理控制台中的S3 API或 更新此策略。

Object Expiration | AWS S3 Documentation

,你在亚马逊S3存储存储某些对象可能有一个 定义良好的寿命。例如,您可能正在上传定期 日志到您的存储桶,但您可能需要保留这些日志以获得 的特定时间。您可以使用对象生命周期管理来指定存储桶中对象的生命周期;当对象的生命周期到期时,Amazon S3会将对象排队以删除 。

Ps:点击链接了解更多信息。