質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

1回答

1416閲覧

【Rails API】本番環境にて画像置く場所のベスト アセットパイプライン / S3

nyako

総合スコア45

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2021/05/27 14:55

編集2021/05/27 14:57

Railsで画像ファイルを扱う際、
① public ディレクトリ
② app/assets/images ディレクトリ
③ 外部ストレージサービス(S3)
どれかに置くと思います。

★とあるページ部分で画像を表示させるerbファイル内の

ruby

1# S3でURL読み込み 2<%= image_tag "~.amazon.s3.com" %>

それとも

ruby

1# public ディレクトリ読み込み 2<%= image_tag "/images/user.jpeg" %>

それとも

ruby

1# app/assets/images ディレクトリ読み込み 2<%= image_tag "user.jpeg"%>

どれがパフォーマンスがいいのでしょうか。

要するに画像を表示させなくてはいけない部分で、
⚪︎Railsアプリケーション内に保存してある画像を呼び出すか
⚪︎S3からURLのパスを引っ張って表示するか

どちらが宜しいのでしょうか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

app/assets/images ディレクトリ読み込 は他の2つとは使い方が異なります。
これは固定されたものです。ここに置くものはprogramingの時点で確定しているものです。fileの中身を入れ替えた場合、そのままでは表示画像は入れ替わりません。

他の2つは、上の目的でも使えますが、普通はシステム起動後にアプリ利用者によって追加、変更されるものに使います。

S3 と public ですが、これは何を重視するかできまります。
publicの方が多分早いですし設定も楽でしょう。が 画像の量が増えるとHDのコストがかさみます
S3はHDDのコストが低いです

投稿2021/05/28 00:16

winterboum

総合スコア23416

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyako

2021/05/28 00:32

なるほど。よく分かりました。実はアプリ利用者を想定して今使っており、ユーザーが画像を投稿する部分に関しては、 S3を使おうと思ってます。 Railsアプリケーションに組み込むのは app/assets/images ディレクトリの方で実装しようと思うのですが、 RailsAPIモードだと最初から省略されていて手動でディレクトリ、ファイルを生成するだけではだめそうなので設定ファイルを設定する必要がありそうですね。 一旦調べてみます。もし分からなかったら再度こちらでお返事させていただきます。 ありがとうございます!
winterboum

2021/05/28 01:55

「RailsAPIモードだと最初から省略されていて手動でディレクトリ、ファイルを生成するだけではだめそう」 これ何をしようとしているのですか?
nyako

2021/05/28 03:46

アプリケーション内で写真を置きたく、Rails APIモードにて作成すると初めからapp/assets/images ディレクトリがないので自身で作成しました。 ですがアセットパイプライン?関連でconfig等でその写真を読み込むための初期設定が必要なのかなと思いまして。。 ただ未だapp/assets/images ディレクトリを作成しただけでは、うまく読み込めません。 どうすれば良いでしょうか。一通り自身で調べて、RailsAPIではないアプリケーションと比較してみましたが解決うまくしません。
winterboum

2021/05/28 04:03

私の回答のはじめのセンテンスは理解頂けてますか?
nyako

2021/05/28 04:21

すみません。 > ここに置くものはprogramingの時点で確定しているものです。fileの中身を入れ替えた場合、そのままでは表示画像は入れ替わりません。 プログラミングの時点とはアプリケーションを作成した時点で決まっているので、いじってはいけないということでしょうか。 > 他の二つはアプリ利用者によって追加、変更されるもの 自信が使いたいのは変更がない、アプリ利用者が触ることはない写真になります。ではその場合はどこに置くべきでしょうか。 初心者の質問でご迷惑おかけし申し訳ないです。お手数ですが宜しくお願い致します。
winterboum

2021/05/28 04:35

いじってもそのままでは反映されません。 APIを通すということはプログラム完成後の動きですので、assetsに置くのではだめですね。 変更が無いのでしたらばAPIを通しておくのはなく、 (何を使ってもよいが)assetsに置いて そこを読む書式でプログラムを書き rake assets:precompile し システムの再起動 が必要です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問