Rails のプラグイン carrierwave と fog を使って、Amazon S3 をストレージとして使う方法のメモです。
使用環境
- Rails 3.2.1
- carrierwave 0.6.0.beta
- fog 1.1.2
carrierwave のインストール
Terminal
$ |
|
config の書き方
initializers に carrierwave.rb というファイルを作成し、以下のような設定を書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
ENV[“AWS_S3_KEY_ID”] にはユーザアクセスID、ENV[“AWS_S3_SECRET_KEY”] にはシークレットアクセスキー、ENV[“AWS_S3_BUCKET”] にはバケット名をそれぞれ設定する。
各値は、Amazon S3 の設定画面で確認できる。
この設定を行い、carrierwave で Uploader を作成して、ファイルをアップロードすると、S3 にファイルを置くことができる。また、S3 上のファイルの URL には、60秒のタイムアウト設定を掛けており、アプリからのアクセスでのみ参照可能なURLが表示されるようになる。(config.fog_public = false、config.fog_authenticated_url_expiration = 60 の設定)