3

データベースをローカルで再シードするたびに、Amazon S3 バケットに重複したイメージが作成されます。これは、正しくシードしていないために発生していると思いますが、適切な方法がわかりません。ここに示す方法を使用しています。Rails 4、Ruby 2、paperclip 3.5.2、および aws-sdk 1.20.0 を使用しています。

以下のファイルをご覧くださいseeds.rb。バケット内の正しいフォルダーに既にアップロードされている画像の URL に画像を設定しようとしています。ただし、ここで使用すると、通常はhttp://s3.amazonaws.com/BUCKET_NAME/restaurants/images/1/original/open-uri20131111-22904-open()のような新しい同一のファイルが同じフォルダーに保存されると思います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"
4

1 に答える 1