fog
gemを介して Amazon S3 に Paperclip をアップロードするのに苦労しています。ほら、私は Heroku を使っているので、その通りです。
問題は、アップロードを Amazon S3 バケットに送信するようにアプリを構成したことです。画像が送信され、オブジェクト以外はすべてpicture
属性が設定されて保存されますが、その/pictures/original/missing.png
理由はわかりません。
問題を軽減するのに役立ついくつかのデータを次に示します。
Work
「写真」と呼ばれる画像のクリップ添付ファイルを定義するモデルがあります。
has_attached_file :picture, path: "app/public/system/images/:class/:id/:attachment/:style/img.:extension", styles: { large: "500x500>", medium: "300x300>", thumb: "100x100>" }
paperclip_defaults.rb
そして、Rails に実際にアップロードを Amazon S3 に送信する (実際のキーは非表示にする) ことを伝えるために、この特定のイニシャライザ ファイルを作成しました。
Paperclip::Attachment.default_options.update({
path: "app/public/system/images/:class/:id/:attachment/:style/img.:extension",
storage: :fog,
fog_credentials: {
provider: 'AWS',
aws_access_key_id: 'lovelovelove',
aws_secret_access_key: 'dr_strangelove',
region: 'sa-east-1'
},
fog_directory: 'florencioassets',
fog_public: true,
fog_host: "http://florencioassets.s3-website-sa-east-1.amazonaws.com/"
})
そして、私のフォームはmultipart
属性がtrueに設定されています。
Work
アップロードされたが、私が推測するオブジェクトに適切に関連付けられていないサンプルファイルがあります: https://s3-sa-east-1.amazonaws.com/florencioassets/app/public/system/images/works/8/写真/オリジナル/img.JPG
では、オブジェクトが実際の画像なしで保存されている理由について何か考えはありますか? 言うまでもなく、アップロードの問題ではないと思います。
お時間をいただきありがとうございます!
アップデート:
誰かがこれをエレガントな方法で解決するのを手伝ってくれることを本当に願っていますが、とにかく、誰かが興味を持っている場合は、これを簡単に回避しました:
%w(original large medium thumb).each do |meth|
define_method("#{meth}_picture_url") do
"https://s3-sa-east-1.amazonaws.com/florencioassets/app/public/system/images/works/#{self.id}/pictures/#{meth}/img.JPG"
end
end