gpt4 book ai didi

ruby-on-rails-3 - 回形针 + S3 : Migrating existing files from one :path format to another

转载 作者:行者123 更新时间:2023-12-04 01:52:16 26 4
gpt4 key购买 nike

我有一个带有 avatar 的模型回形针附加。它现在有一个普通的标准路径

has_attached_file :avatar,
:path => "/:id-:style-:filename"

我需要进入一个混淆的
has_attached_file :avatar,
:path => "/:id-:hash.:extension"
:hash_secret => 'asecuresecret'

使用新图像一切正常,但是如何将存储在 S3 中的现有文件迁移到新的路径格式,即重命名它们?

我使用的是回形针 2.7 和 Rails 3.2

谢谢 !!!

最佳答案

这个 rake 任务应该可以解决问题。我用 aws-sdk 1.5.2 和 ruby​​ 1.9.3p194 试过了。
new_key应该映射到您的新回形针路径。不要忘记设置 :acl根据您的需要。

namespace :data do
desc 'aws images migration'
task :migrate_images do |t, args|
s3 = AWS::S3.new(:access_key_id => 'XXX', :secret_access_key => 'XXX')
bucket = s3.buckets['your-bucket-name']
bucket.objects.each do |object|
new_key = object.key.gsub(........)
new_object = bucket.objects[new_key]
object.copy_to new_object, {:acl => :public_read}
end
end
end

一旦您确定新文件是正确的,就应该手动或使用类似的任务删除原始文件。

关于ruby-on-rails-3 - 回形针 + S3 : Migrating existing files from one :path format to another,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251309/

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