首页 > 解决方案 > Laravel 存储可访问性混乱

问题描述

我无法弄清楚 Laravel 的存储是如何工作的,因为有两个公用文件夹,当我阅读有关它的帖子时,我很困惑人们在谈论哪些人。

只是为了说明一下,我有一个应用程序,我想在其中存储仅用于登录用户的图像。我知道公用文件夹允许每个人也可以看到图像,我不希望这样。有两个名为 public 的文件夹,它们是:

等级制度

我很确定 public 仅用于 css/js/index.php 等,而 storage/app/public 是可公开访问存储文件的文件夹。但是,我不是 100% 确定的。

如果我想为登录用户提供私人图像,在 storage/app/ 文件夹中创建客户端文件夹是否正确?

谢谢你的帮助。

标签: laravel

解决方案


长话短说,Laravel 的目标是让两者保持一致。它在文档中得到了很大的解释:https ://laravel.com/docs/7.x/filesystem#the-public-disk

即使存储文件夹确实受到保护,当您运行命令时,您将在和php artisan storage:link之间创建符号链接。public/storagestorage/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');

将无法从外部访问。


推荐阅读