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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2130閲覧

rails publicフォルダの中身にURLからアクセス

lyzmfeqpxs54

総合スコア237

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/04/15 05:01

いつもお世話になっております。

現在 Railsでwebページを作成し運用しております。
中身はSNSようなイメージで、ユーザーがアップロードした画像や写真を見ることができるサービスとなっており、中の写真等ははログインしないと見れないような仕組みで作っております。

https://ドメイン/loginがログイン画面でログインすると
https://ドメイン/homeのような画面に飛び、このページはコントローラでログイン認証がないとアクセスできないように作っております。

ユーザーから質問で、このページはログインしなくともURLからpublicにアクセスできて写真が見られてしまうのではと指摘を受けました。アップロードした画像はpublic/uploadsフォルダにリサイズされ格納されている状態ではあるのですが、URLからpublic配下にアクセスすることは可能なのでしょうか。

ご教示いただけますと幸いです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

アップロードした画像はpublic/uploadsフォルダにリサイズされ格納されている状態ではあるのですが、URLからpublic配下にアクセスすることは可能なのでしょうか。

はい、そのとおりです。public/以下はURL直打ちでアクセス可能な領域です。

投稿2019/04/15 05:09

maisumakun

総合スコア145121

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

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

lyzmfeqpxs54

2019/04/15 05:13

いつもご回答ありがとうございます。 https://ドメイン/publicにアクセスしても表示されないのですが、どのようにすればよいのでしょうか。
maisumakun

2019/04/15 05:16

public/は外して、たとえばpublic/foo/bar.pngであればhttp://server.example/foo/bar.pngのようになります。
lyzmfeqpxs54

2019/04/15 05:27

ご回答ありがとうございます。 ご教示いただいたようにhttps://ドメイン/public/xxxx/yyyy.pngで画像にアクセスはできました。 不勉強で申し訳ございませんがもう少々質問をお許しください。 https://ドメイン/public/xxxx/ 配下には当然複数の画像が入っているのですが、この一覧を確認(表示)するということは可能なのでしょうか(例えばhttps://ドメイン/public/xxxx/* のようなイメージです)。 また、ログインした人しか見れないといったサイトの場合、/public配下に格納するのは不適切ということでしょうか。その場合どのようにするのが良いのでしょうか。 ご回答いただけますと幸いです。
maisumakun

2019/04/15 05:42

> この一覧を確認(表示)するということは可能なのでしょうか 大抵の場合、できない設定にはなっています。 > その場合どのようにするのが良いのでしょうか。 画像表示もRailsのコントローラー経由にして、アクセスしているユーザーを認証の上画像データを返す、などの処理が必要になるかと思います。
CHERRY

2019/04/15 05:47

(横からですが...) rails の Public ディレクトリは、通常、 Webサーバの DocumentRoot として設定して、Webサーバから Rails を経由せずに参照させることが多いです。 Webサーバの DocumentRoot にしているしている場合で、Public のファイルの一覧が見えるかどうかは、 Web サーバの設定に依存します。(大抵は、ファイルの一覧を見えないように設定します。) > /public配下に格納するのは不適切ということでしょうか。その場合どのようにするのが良いのでしょうか。 Public 以外ディレクトリに置いて rails コントローラー経由で、表示するデータを送信する等の対応になると思われます。 別の方法としては、データを Amazon S3 等の外部オブジェクトストレージに置いておいて、表示する都度、rails のコントローラーで、署名付きURLを作成して、期間限定でアクセスさせる等の方法でしょうか。
lyzmfeqpxs54

2019/04/15 05:48 編集

maisumakun様 ご回答ありがとうございます。 public内もコントローラーを介して処理することができるのですね。 ご教示いただいた「画像表示もRailsのコントローラー経由にして、アクセスしているユーザーを認証の上画像データを返す」という方法を実行したいと思います。 度々のご回答ありがとうございました。
lyzmfeqpxs54

2019/04/15 05:52 編集

CHERRY様 ご回答ありがとうございます。 >Public 以外ディレクトリに置いて rails コントローラー経由で、表示するデータを送信する等の対応になると思われます。 public内はRailsのコントローラを介せないということででょうか? >Webサーバの DocumentRoot にしているしている場合で、Public のファイルの一覧が見えるかどうかは、 Web サーバの設定に依存します。(大抵は、ファイルの一覧を見えないように設定します。) https://ドメイン/public/xxxx/にアクセスして表示されないということであれば、見えないように設定されているという解釈でよいでしょうか? 不勉強で申し訳ございません。 ご回答いただけますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問