亚马逊S3上传的文件能否在几天后自动删除?

6

亚马逊S3 API已添加对象过期功能,该功能会在几天后删除文件夹内上传的所有文件。

是否可以针对每个文件从上传日期开始进行相同的操作?

例如,当我上传foo.png后,经过X天后,只删除该文件而不是文件夹中的所有文件。

1个回答

6
你的文件路径在S3中只是一个前缀。因此,如果你有以下结构:
/  
|  
+--folder1   
    |  
    +--folder2  
    |   
    +--folder3  
    |   |  
    |   +--foo.png  
    |   |  
    |   +--foo2.png  
    |  
    +--bar.png  

如果您希望您的规则仅适用于foo.png,则将其设置为“folder1/folder3/foo.png”(在您的存储桶中,"entire-name"前缀只会匹配一个文件)。
但请注意关于规则数量的限制。根据Object Expiration docs:要设置对象的到期时间,您需要向存储桶添加生命周期配置,其中描述了存储桶中各个对象的生命周期。 生命周期配置最多可有100个规则。每个规则标识对象前缀和以该前缀开头的对象的生命周期。 生命周期是从创建之日起您想要删除该对象的天数。

4
如果您为存储桶设置了生命周期配置,它将对存储桶中的所有文件有效。这意味着,如果您有一个名为“files/”(或技术上称为前缀)的文件夹,并在存储桶上应用了7天过期的生命周期策略,则使用此前缀上传的每个文件都将在上传后7天内被删除。这似乎正是您想要的。您不需要对每个文件都设置策略,单个策略就可以满足您的需求。 - Viccari
看起来不是那样的。如果我将到期时间应用于文件夹,文件夹中的所有文件将在同一天到期。 - jQuerybeast
@jQuerybeast 关于你的第一个评论,你说的正是我说的 :) 关于你的第二个评论,*.png 不是真正的前缀,而是后缀。这样是行不通的。 - Viccari
1
@Viccari 很抱歉打扰这么老的帖子。如果前缀设置为 folder1/,那么我猜 folder2folder3 以及 bar.png 都会被生命周期规则删除?我问这个问题是因为我不确定文件夹(比如 folder1、folder2、folder3)是否被视为 S3 文件/对象。谢谢! - allaire
@allaire 简言之,是的,它们将被删除。长话短说:前缀不被视为 S3 对象,但如果您指定一个包含前缀(也就是 folder1/)的生命周期规则,该规则将应用于所有包含该前缀的对象。文档链接:http://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-prefix - Viccari
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接