プログラミング

Ruby on Rails5 から「aws-sdk-s3」を使って画像をアップロードする

AWSの公式プラグイン「aws-sdk-s3」を使って、画像をアップロードする際の覚え書き。

開発環境

  • Ruby: 2.4.1p111
  • Rails: 5.1.2
  • aws-sdk-s3: 1.0.0.rc2

実装

aws-sdk-s3 のインストール

まずは「aws-sdk-s3」のインストールを行います。

Gemfileに以下を追記します。

追記後にbundle install --path vendor/bundleを実行します。

アップローダーとコントローラーの作成

次に画像をアップロードするアップローダーと、それをコントロールするコントローラーを作成します。

※ ビューとルート(routes.rb)の設定は割愛させていただきます。

アップローダー

まずはアップローダーです。

イニシャライザでバケットに置くファイルの設定とS3用のインスタンスを初期化しています。

画像を実際にアップロードしている部分はupload_imageメソッドで行なっています。エラーハンドリングは、今回はとりあえずbegin ~ rescueで対応しています。

コントローラー

そしてコントローラー部分。

ビューからの画像データはparams内に入ることを想定。それをアップローダーの初期化に使用し、画像アップロード用のメソッドを叩いています。

画像をアップロードした場合のPOST値は以下のようになります。

おわり

AWSって便利だよねえ。

参考記事

aws/aws-sdk-ruby – GitHub

created by Rinker
¥2,786
(2019/09/19 14:38:33時点 楽天市場調べ-詳細)

ABOUT ME
maechan
ベンチャー、フリーランス、スタートアップを経験。 開発業務、人事業務に従事していました。 現在は農業系スタートアップ企業でエンジニアとして働いています。 リモートワークをしているノマドサラリーマンです。茶道とワークアウトが趣味です。
こんな記事もおすすめ

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です