Laravel путаница доступности хранилища - PullRequest
1 голос
/ 27 апреля 2020

Мне трудно понять, как работает хранилище Laravel, так как есть две публичные c папки, и я не понимаю, о чем говорят люди, когда я читаю сообщения об этом.

Просто чтобы контекст, у меня есть приложение, где я хочу хранить изображения только для зарегистрированных пользователей. Я понимаю, что папка publi c позволяет всем видеть изображения, я этого не хочу. Существуют две папки с именем publi c, которые:

Hiarchy

Я уверен, что publi c только для css / js / index. php et c. а storage / app / publi c - это папка, в которой хранящиеся файлы общедоступны. Я, однако, не уверен на 100%.

Если я хочу иметь личные изображения для вошедших в систему пользователей, правильно ли это, создав папку клиентов в хранилище / app / folder?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 27 апреля 2020

Короче говоря, Laravel стремится к тому, чтобы они оба были одинаковыми. И это подробно объясняется в do c: https://laravel.com/docs/7.x/filesystem#the -publi c -disk

Даже если папка хранения действительно защищена, когда вы запускаете команду php artisan storage:link Вы создадите символическую c ссылку между public/storage и storage/app/public.

Все элементы, доступные в storage/app/public, будут доступны в public/storage и доступны извне.

Если вы хотите запретить доступ publi c, вам необходимо использовать драйвер local (https://laravel.com/docs/7.x/filesystem#the -local-driver ), и он будет надежно храниться в вашем приложении , Например:

Storage::disk('local')->put('FOLDERNAME/file.txt', 'Contents');

не будет доступен снаружи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...