ローカルファイルをAmazon S3に置いてどこからでもアクセスできるURLを取る方法
タイトルそのまま。local_pathで指定したファイルをfilenameと名づけてAmazon S3に置く。 ポイントは
- リージョンを設定しておく(Tokyoがオススメ)
- write時にacl: :public_readをつける
くらいかな。
# s3upload.rb require 'aws-sdk-v1' # Tokyo region REGION = 'ap-northeast-1' # Bucket Name BUCKET_NAME = 'your-bucket-name' def uploads3 local_path, filename s3 = AWS::S3.new( region: REGION, access_key_id: ENV['ACCESS_KEY_ID'], secret_access_key: ENV['SECRET_ACCESS_KEY'], ) bucket = s3.buckets[BUCKET_NAME] obj = bucket.objects[filename] obj.write file: local_path, acl: :public_read obj.public_url(secure: false).to_s end