#aws #s3

aws-sdk v2を使ってS3にファイルアップロード

Amazon S3にaws-sdk v2を使って画像ファイル(ActionDispatch::Http::UploadedFile)をアップロードするコードです。aws-sdk v2とv1のコードは違うのでぜひぜひご注意してください。(v2の場合は全てのモジュールがAwsでv1はAWSにあります)

# Gemfile
gem 'aws-sdk', '~> 2'

# config/initializers/aws.rb
Aws.config.update(
  region: 'us-east-1',
  credentials: Aws::Credentials.new('key', 'secret'),
)

# fileはformからサブミットした`ActionDispatch::Http::UploadedFile`を想定
def upload(file)
  s3 = Aws::S3::Resource.new.bucket('bucket-name')
  s3.object('foo/bar/file.jpg').upload_file(file.tempfile)
end

テストをstub

一々AWSへのリクエストをstubしたくない場合は下記のコードを入れれば大丈夫です。

RSpec.configure do |config|
  Aws.config.update(stub_responses: true)
end

参考リンク

Qihuan Piao

朴 起煥

中国育ち、東京暮らし。読んだり書いたり、時には考え込んだり。親になってから5年ほど、ブログ(とその他もろもろ)は完全停止していたけど、気づけばまた書いている。ここにはそんな寄り道の記録を書いています。結論が出ない話も多いけど、それもまたよし。

その頃、英語で書いたもの

4 Ways To Calm You Down When You're Really Angry

2015年5月11日

その頃、中国語で書いたもの

古巨基唱出的匆匆那年

2015年2月19日