", -6ren">
gpt4 book ai didi

ruby-on-rails - 更新已创建的回形针附件的路径

转载 作者:行者123 更新时间:2023-12-04 03:51:25 24 4
gpt4 key购买 nike

我曾经有过这个有问题的 Paperclip 配置:

class Photo < ActiveRecord::Base

has_attached_file :image, :storage => :s3,
:styles => { :medium => "600x600>", :small => "320x320>", :thumb => "100x100#" },
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "/:style/:filename"
end

这是有问题的,因为两个图像不能具有相同的大小和文件名。为了解决这个问题,我将配置更改为:
class Photo < ActiveRecord::Base

has_attached_file :image, :storage => :s3,
:styles => { :medium => "600x600>", :small => "320x320>", :thumb => "100x100#" },
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "/:style/:id_:filename"
end

不幸的是,这破坏了我已经创建的附件的所有 URL。如何更新这些文件路径或以其他方式使 URL 正常工作?

最佳答案

我最终使用 aws-s3 手动执行此操作 gem :

Photo.all.map{|p| [p.image.path(:thumb), "/thumb/#{p.id}_#{p.image_file_name}"]}.each do |p|
if AWS::S3::S3Object.exists? p[0], bucket_name
AWS::S3::S3Object.rename p[0], p[1], bucket_name
end
end

(当然,我必须为每种附件样式重复一遍)

关于ruby-on-rails - 更新已创建的回形针附件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3049198/

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