質問: いつもお世話になっております。 現在 Railsでwebページを作成し運用しております。 中身はSNSようなイメージで、ユーザーがアップロードした画像や写真を見ることができるサービスとなっており、中の写真等ははログインしないと見れないような仕組みで作っております。 アップロードした画像はpublic/uploadsフォルダにリサイズされ格納されている状態であり、URLからpublic配下に直接アクセスすると画像が表示できてしまいます。 そこで質問なのですが、public配下へのアクセスもRailsのコントローラを介するような形にすることは可能でしょうか。 ご教示いただけますと幸いです。 よろしくお願いいたします。
回答: アップロードしたファイルに関してすべてルーティングしてコントローラーを介するは難しいかと思います。(そもそもpublicフォルダ(公開の)という名前くらいですしね) public配下へのアクセスにコントローラを介する理由としては、ログインしていないユーザーからのアクセスを排除したいからということでOKでしょうか。 もしそうであるならば、どちらかというとRailsで設定するよりもサーバー側の設定で対応すればいいんじゃないでしょうか。 どのような環境で運用されているかわからないのでなんとも言えませんが、 例えばサーバーにNginxを使ってるならsecure_linkを利用すればログインしているユーザー以外みれなくすることも可能かと思います。 一度ご検討してみてはいかがでしょうか。