RailsでCarrierwaveなどのGemを使わず、画像をS3に上げる方法です。
公式ドキュメントは充実してるものの巨大なので該当場所を探すのが面倒なのと、WEB上はv1の情報が混ざってたりと手間取ったのでメモ。
Railsのコントローラ内で、Postされた画像をS3に保存するイメージです。
image = params["file"].tempfile # Tempfile Class object
client = Aws::S3::Client.new(
region: 'ap-northeast-1',
access_key_id: "YOUR_AWS_ACCESS_KEY",
secret_access_key: "YOUR_AWS_SECRET_ACCESS_KEY"
)
s3 = Aws::S3::Resource.new(client: client)
obj = s3.bucket('bucket_name').object('file_name')
obj.upload_file(image)
これだけで大丈夫です。便利。