今回はcarrirewave-awsを使ってS3に画像をアップロードする方法を紹介します。
目次
- carrierwave-awsとは
- gemをインストールする
- initializerの設定
1. carrierwave-awsとは
carrierwave-awsはfogに似たgemで、Amazon S3へのアップロード機能を提供します。
carrierwaveでS3などのストレージ画像をアップロードするにはfogがよく使われると思いますが、
AWSへのアクセスをaws-sdkに統一するために、今回carrierwave-awsを利用しました。
GitHubのリポジトリはこちら
carrierwaveでS3などのストレージ画像をアップロードするにはfogがよく使われると思いますが、
AWSへのアクセスをaws-sdkに統一するために、今回carrierwave-awsを利用しました。
GitHubのリポジトリはこちら
2. gemをインストールする
下記のgemをインストールします。
# Gemfile
gem 'carrierwave'
gem 'carrierwave-aws'
3. initializerの設定
carrierwaveの設定を行います。()
# Gemfile
CarrierWave.configure do |config|
if Rails.env.production?
config.storage = :aws
config.aws_bucket = 'data.hoge.upload'
config.aws_acl = 'public-read'
# The maximum period for authenticated_urls is only 7 days.
config.aws_authenticated_url_expiration = 60 * 60 * 24 * 7
# Set custom options such agit s cache control to leverage browser caching
config.aws_attributes = {
expires: 1.week.from_now.httpdate,
cache_control: 'max-age=604800'
}
# aws credential
config.aws_credentials = {
# 今回はIAM ロールを使用するため記載しない
# access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
# secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
region: 'ap-northeast-1' # Required
}
else
# テスト時はローカルにファイルを保存する
config.storage = :file
end
end
設定は以上です。
アップローダの方で特に意識することなく、S3へファイルをアップロードできました。
アップローダの方で特に意識することなく、S3へファイルをアップロードできました。
0 件のコメント:
コメントを投稿