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側の設定も含めて紹介しました。

page_footer_300rect




page_footer_300rect




-BackEnd
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

js

GoogleAppsScriptを使ってmBaaSの定期実行処理を実装する

1 はじめに1.1 簡単な状況説明1.2 定期実行を行う方法2 実装2.1 実装の流れ2.2 JavaScriptの実装2.3 スクリプトをアップロードする2.4 Google Apps Script ...

Pythonで書かれたスクレイピングのコードをRubyで書いてみる

1 はじめに2 仕様3 ソースコード4 使用したモジュール、Gem5 対象ページを取得6 XPATHから目的のものを抜き出す7 次のページのリンクを取得する8 さいごに はじめに 以前、技術評論社さん ...

PHPerだけどKotlinを勉強したって良いよね その1〜クラス編〜

1 はじめに2 インターフェース2.1 基本2.2 デフォルト実装付メソッド2.3 同じメソッド名を持つ複数のインターフェース3 修飾子3.1 open3.2 abstract4 可視性修飾子5 さい ...

rails

Shrineでアップロードする際に画像を加工する

1 はじめに2 アップロードする画像のリサイズ2.1 Gemを追加2.2 Uploaderの修正3 サムネイルを作成する3.1 Uploaderの修正3.2 サムネイルを表示する4 バリデーションの追 ...

【Git】マージコミットを消したい

1 はじめに2 例えばこんなことってないでしょうか?3 マージコミットを消す4 さいごに はじめに こんにちは、tonnyです。 今回はGitのケーススタディ的なものを書きたいと思います。 反面教師と ...

フォロー

follow us in feedly

AppLink

page_side_300rect

2017年12月
« 11月 1月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31 

アプリ情報

目標を達成したい方を応援する、TODOアプリもリリースしております。 下記のアイコンから無料でダウンロードできます。

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。