gpt4 book ai didi

ruby-on-rails - Rails AWS-SDK : Set Expiration Date for Objects

转载 作者:行者123 更新时间:2023-12-05 05:27:12 39 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我允许用户将图像直接上传到 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)

最佳答案

您在存储桶本身而不是每个单独的对象上设置生命周期配置。使用 rest api 你只需写出一个 xml 配置(有一个 prefix 字段让你只将这个生命周期配置应用于那些以它为前缀的键)和 PUT把它放进桶里。

将其转换为 ruby​​ SDK,看起来示例正在执行您想要的操作; add_rule 的第一个参数似乎是前缀。

关于ruby-on-rails - Rails AWS-SDK : Set Expiration Date for Objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485757/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com