在我的Rails应用程序中,我允许用户将图像直接上传到S3,S3创建一个临时文件,该文件在图像记录保存在数据库中后会自动删除。
我不想在保存记录后自动删除图像,而是要在S3上设置文件的到期日期,以便在一段时间(例如24小时)后自动将其删除。
我看过有关如何在存储桶上设置到期日期的文档(http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/BucketLifecycleConfiguration.html),但是我只希望存储桶以获取自动删除的文件。
有人对如何做有建议吗?
s3 = AWS::S3.new(:access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_ACCESS_KEY'])
foldername = @image.s3_filepath.split("/")[5]
folder_path = 'uploads/' + foldername
s3.buckets[ENV['AWS_BUCKET']].objects.with_prefix(folder_path).each( #set expiration date header here)
您可以在存储桶本身(而不是每个单独的对象)上设置生命周期配置。使用其余的api,您只需编写一个xml配置(有一个字段prefix
,让您仅将此生命周期配置应用于PUT
以其为前缀的那些键)并将其存储到存储桶中。
将其转换为ruby SDK,看起来该示例正在执行您想要的操作;add_rule的第一个参数似乎是前缀。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句