0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

carrierwaveで一括uploadしたら同じファイル名で保存された

Last updated at Posted at 2019-08-07

すっかりiosの仕事がなくなるわ、web系のエンジニアがみんな辞めてAWSからRailsまで触るようになってしまって数ヶ月経ちました
メモがてら

結論

色々やったけど元のファイル名を入れるしかなかった

class ItemImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  def filename
    "#{secure_token}_#{original_filename}" if original_filename.present?
  end

protected
  def secure_token
    var = :"@#{mounted_as}_secure_token"
    model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid)
  end
end

画像を一括upload

carriewaveを使うとmulitipartできた画像を一括でS3にuploadでできてDBに登録できるんだやったね!
https://qiita.com/ggtmtmgg/items/ba5f275c122c83013ea1

できなかった

5個の画像をuploadしてもmodelをsaveした瞬間全部の画像が「aaaaa.jpg」と同じ名前で保存された

原因

もうここに書いてるとおり
uploadのインスタンスがひとつだからひとつのファイル名になってた
filenameを呼び出す度に変えるようにしたらうまくいった

それでもダメだった

S3にあげたときとDBに保存する時でファイル名が変わってた

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?