Open emma1278-my opened 1 month ago
bundle install
class AvatarUploader < CarrierWave::Uploader::Base storage :fog
def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end
def extension_whitelist %w(jpg jpeg gif png) end end
CarrierWave.configure do |config| config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: ENV['AWS_REGION'], # 例: 'us-east-1' } config.fog_directory = ENV['S3_BUCKET_NAME'] end
AWSのアクセスキーやバケット名などの情報を環境変数に設定。
[ ] .env AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key AWS_REGION=your_aws_region S3_BUCKET_NAME=your_s3_bucket_name
[ ] モデルの設定
モデルにアップローダーをマウント
app/models/user.rb class User < ApplicationRecord mount_uploader :avatar, AvatarUploader end
予算次第でGoogle cloud storageに変更予定
bundle install
class AvatarUploader < CarrierWave::Uploader::Base storage :fog
def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end
def extension_whitelist %w(jpg jpeg gif png) end end
CarrierWave.configure do |config| config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: ENV['AWS_REGION'], # 例: 'us-east-1' } config.fog_directory = ENV['S3_BUCKET_NAME'] end
AWSのアクセスキーやバケット名などの情報を環境変数に設定。
[ ] .env AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key AWS_REGION=your_aws_region S3_BUCKET_NAME=your_s3_bucket_name
[ ] モデルの設定
モデルにアップローダーをマウント
app/models/user.rb class User < ApplicationRecord mount_uploader :avatar, AvatarUploader end
予算次第でGoogle cloud storageに変更予定