搬送波、レール、Amazon s3 を使用しています。イメージを保存するたびに、イメージが s3 に表示され、管理コンソールで次のような名前で表示されます。
https://s3.amazonaws.com/bucket-name/
uploads/images/10/888fdcfdd6f0eeea_1351389576.png
ただし、モデルでは、名前は次のとおりです。
https://bucket-name.s3.amazonaws.com/
uploads/images/10/b3ca26c2baa3b857_1351389576.png
まず、なぜランダムな名前が違うのですか? アップローダで次のように生成しています。
def filename
if original_filename
"#{SecureRandom::hex(8)}_#{Time.now.to_i}#{File.extname(original_filename).downcase}"
end
end
モデル内の間違った URL が一貫して保存されているため、呼び出しごとにランダムな文字列が生成されないことはわかっています。プロセスのどこかで、イメージ名が保存されて amazon s3 に送信された後、モデルに保存するために新しいイメージが生成される必要があります。変。
また、正規表現を使用せずに、bucket.s3 の代わりに s3/bucket に関して URL を一致させることはできますか? キャリアウェーブなどにオプションはありますか?