パブリックフォルダが2つあるため、Laravelのストレージがどのように機能するかを理解するのに苦労しています。また、Laravelに関する投稿を読んだときに、どの人が話しているのか混乱しています。
コンテキストを説明するために、ログインしたユーザー専用の画像を保存したいアプリがあります。パブリックフォルダを使用すると、誰もが画像を見ることができるという事実がわかります。私はそれを望んでいません。publicという名前のフォルダが2つありますが、次のとおりです。
publicはcss / js / index.phpなど専用であり、storage / app / publicは保存されたファイルがパブリックにアクセスできるフォルダーであると確信しています。しかし、私は100%確信していません。
ログインしたユーザーのプライベートイメージが必要な場合、storage / app /フォルダーにclientsフォルダーを作成したのは正しいですか?
ご協力いただきありがとうございます。
簡単に言えば、Laravelは両方が同じになることを目指しています。そしてそれはドキュメントで大いに説明されています:https://laravel.com/docs/7.x/filesystem#the-public-disk
ストレージフォルダが実際に保護されている場合でも、コマンドphp artisan storage:link
を実行するpublic/storage
と、との間にシンボリックリンクが作成されますstorage/app/public
。
で利用可能なすべてのアイテムは、外部storage/app/public
で利用可能にpublic/storage
なり、外部からアクセスできるようになります。
パブリックアクセスを防止したい場合は、local
ドライバー(https://laravel.com/docs/7.x/filesystem#the-local-driver)を使用する必要があります。これにより、アプリケーション内に安全に保存されます。例えば:
Storage::disk('local')->put('FOLDERNAME/file.txt', 'Contents');
外部からはアクセスできません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加