BackEnd

ShrineでS3に画像をアップロードする

投稿日:

はじめに

RailsアプリケーションからS3に画像をアップロードするケースはよくあるのではないかと思います。
今回はShrineというGemを使ってS3に画像をアップロードする方法を紹介します。

前提条件

ruby 2.4.1
rails 5.1.0
shrine 2.6.1

関連記事

Gemの使い方等は下記の記事を御覧ください。
Shrineでアップロードする際に画像を加工する
Shrineを使って画像をアップロードする

AWS側の準備

AWS側で必要な設定は下記のとおりです。

  • S3バケットを作成する
  • CORSを設定する
  • アクセス用のユーザを作成する

S3バケットを作成する

S3バケットはマネジメントコンソールの「S3」から作成できます。

「バケットを作成する」をクリックして下記の画像のようにバケット名を指定して「次へ」をクリックします。
s3_01
プロパティの設定は特に変更せず「次へ」をクリックします。

アクセス許可の設定も特に変更せず「次へ」をクリックします。
s3_02
設定内容を確認して「バケットの作成」をクリックします。

CORSを設定する

CORSはCross-Origin Resource Sharingの略で「特定のドメインにロードされたクライアントウェブアプリケーションが異なるドメイン内のリソースと通信する方法を定義します」

先程作成したバッケット名をクリックし、「アクセス制限」→「CORSの設定」をクリックします。

「CORS構成エディター」に下記の通り入力して「保存」をクリックします。

 

アクセス用のユーザを作成する

「IAM」からS3にアクセスするためのユーザを作成します。
「IAM」の画面の左のメニューから「ユーザ」をクリックします。

「ユーザを追加」をクリックします。

ユーザ名を入力し、アクセスの種類のプログラムによるアクセスにチェックを入れて「次のステップ」をクリックします。
iam_01
「既存のポリシーを直接アタッチ」をクリックしてAmazonS3FullAccessにチェックを入れて「次のステップ」をクリックします。
iam_02
内容を確認して「ユーザの作成」をクリックします。

ユーザが作成できたら「アクセスキーID」と「シークレットアクセスキー」をメモします(CSVをダウンロードすることもできます)

Rails側の設定

Rails側はInitializerを設定するだけでローカルのサーバへのアップロードと同様に行えます。

Initializerの設定

shrine.rbを下記のように設定します。

さいごに

Shrineを使ってS3に画像をアップロードする方法をAWS側の設定も含めて紹介しました。

blog-page_footer_336




blog-page_footer_336




-BackEnd
-, ,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

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

CAPTCHA


関連記事

laravel logo

Laravelで認証APIを作る

1 はじめに1.1 条件1.2 JWTとは2 準備2.1 認証機能を有効化2.2 jwt-authのインストール2.3 コンフィグファイルの作成2.4 secretの作成3 Userモデルを修正4 g ...

laravel logo

DeployerでLaravelをデプロイ! 初期設定〜レシピのカスタマイズまで

1 はじめに2 Deployerの導入2.1 前提条件2.2 インストール3 デプロイの設定3.1 デプロイスクリプト3.2 サーバサイドの設定3.3 デプロイコマンド3.4 Deployerのディレ ...

rails

半年ぶりにRails Tutorialをやったメモ

はじめに Railsを触り始めて半年ほどたちました、tonnyです。 復習もかねてRails Tutorialを実施したので、そのメモを残します。 やはり2回目でも気づくことは多いので、非常に勉強にな ...

麻雀で自分が何を切るか学習させる

1 はじめに2 プロジェクト名を決めてみる3 何切る問題で考慮される要素3.1 手牌3.2 ドラ3.3 考慮していない要素(本当は入れたい)4 学習の方法5 さいごに はじめに 前回執筆しました、配牌 ...

rails

はじめてのrails、まずはローカル環境構築してみる

1 はじめに2 必要なライブラリ・ツールのインストール2.1 homebrew, rbenv2.2 rbenv-communal-gems3 最新安定版のrubyをインストール4 bundler, r ...

フォロー

blog-page_side_responsive

2017年12月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。