【发布时间】:2013-11-24 00:01:27
【问题描述】:
每次我在本地重新播种我的数据库时,都会在我的 Amazon S3 存储桶中创建重复的图像。我认为发生这种情况是因为我没有正确播种,但我不知道正确的方法。我一直在使用here 所示的方法。我正在使用 Rails 4、Ruby 2、回形针 3.5.2 和 aws-sdk 1.20.0。
您可以在我的seeds.rb 文件中看到下面的内容,我正在尝试将图像设置为已上传到我存储桶中正确文件夹的图像的 url。但是,我认为在这里使用open() 会导致将一个新的、相同的文件保存到同一个文件夹中,通常类似于http://s3.amazonaws.com/BUCKET_NAME/restaurants/images/1/original/open-uri20131111-22904-xvzitl.?1384211739。
编辑:所以我的存储桶将同时存储此文件以及 http://s3.amazonaws.com/BUCKET_NAME/restaurants/images/1/original/NAME.jpg
非常感谢任何帮助!
型号
has_attached_file :image,
:styles => { :medium => "300x300>", :thumb => "100x100>" }
种子.rb
Restaurant.create!( name: ...,
description: ...,
image: open('https://s3.amazonaws.com/<BUCKET NAME>/restaurants/images/1/original/<NAME>.jpg') )
config/initializers/paperclip.rb
Paperclip::Attachment.default_options[:storage] = :s3
Paperclip::Attachment.default_options[:s3_credentials] = {
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
Paperclip::Attachment.default_options[:bucket] = ENV['AWS_BUCKET']
Paperclip::Attachment.default_options[:url] = ":s3_path_url"
Paperclip::Attachment.default_options[:path] = "/:class/:attachment/:id/:style/:basename.:extension"
Paperclip::Attachment.default_options[:default_url] = "https://s3.amazonaws.com/<BUCKET NAME>/images/missing.png"
【问题讨论】:
标签: amazon-s3 ruby-on-rails-4 paperclip