emma1278-my / HorrorBurn

0 stars 0 forks source link

画像アップロードの際にS3等の外部ストレージを使う設定 #126

Open emma1278-my opened 1 month ago

emma1278-my commented 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のアクセスキーやバケット名などの情報を環境変数に設定。

モデルにアップローダーをマウント

app/models/user.rb class User < ApplicationRecord mount_uploader :avatar, AvatarUploader end

予算次第でGoogle cloud storageに変更予定