LoginSignup
40
43

More than 5 years have passed since last update.

Rails+Carrierwave+fog+Heroku+S3でハマったメモ

Posted at

Herokuにのっけている、Railsのアプリケーションでアップロードした画像をS3に保存したい。

その中でいろいろハマったのでメモ。

実装方法は

Rails 超お手軽な画像アップローダー CarrierWave の使い方 | Workabroad.jp

RailsとCarrierWaveでAmazon S3に画像を保存する | Workabroad.jp

などを参考にした。

今回はその中でハマったことを書いていく。

ハマったこと

S3側でやること

Security Credentials → Access Keysから Create New Access Key を押す → Download Key Filesを押す

csvファイルがダウンロードできる。

You will not have access to this secret access key again after this dialog box closes

らしい。

carrierwaveで実装するとき

  • multiport => true を入れる。

ファイル名が日本語である場合の対応

app/initializers/carrierwave.rb
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/

Rmagickを使うとstack level too deepが出た

のでmini_magickをやりました。

Herokuにあげるときの注意点

app/initializers/carrierwave.rb

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => ENV['AWS_ACCESS_KEY'],
    :aws_secret_access_key  => ENV['AWS_SECRET_KEY'],
    :region                 => ENV['AWS_REGION']
  }

    config.fog_directory = ENV['S3_BUCKET_NAME']
  end
  config.cache_storage = :fog #キャッシュの場所をS3に変更
  config.cache_dir = "#{Rails.root}/tmp/uploads" #for Heroku
end

40
43
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
40
43