laravel - Laravel 存储可访问性混乱
问题描述
我无法弄清楚 Laravel 的存储是如何工作的,因为有两个公用文件夹,当我阅读有关它的帖子时,我很困惑人们在谈论哪些人。
只是为了说明一下,我有一个应用程序,我想在其中存储仅用于登录用户的图像。我知道公用文件夹允许每个人也可以看到图像,我不希望这样。有两个名为 public 的文件夹,它们是:
我很确定 public 仅用于 css/js/index.php 等,而 storage/app/public 是可公开访问存储文件的文件夹。但是,我不是 100% 确定的。
如果我想为登录用户提供私人图像,在 storage/app/ 文件夹中创建客户端文件夹是否正确?
谢谢你的帮助。
解决方案
长话短说,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');
将无法从外部访问。
推荐阅读
- python - 如何获取到本地主机的 HTTP 请求?
- python-3.x - 将数据从 csv 文件插入到 mongodb
- mysql - MySQL - utf8 字符无法在 Web 前端正确显示
- c++ - 无法使用 openssl 服务器,因为密码已过时...或其他...ERR_SSL_VERSION_OR_CIPHER_MISMATCH
- javascript - How do I open a page outside of the iframe but within the same tab?
- ruby - How to write a while loop properly
- r - R:无法将 .rda 文件加载到 R Studio -> 无法打开压缩文件“ESL.mixture.rda”,可能的原因“没有这样的文件或目录”
- routing - Ionic 4 路由不起作用 url 更改但视图没有出现
- c# - 如何发送超过 70 个字符的短信
- bash - Perl 在 Shell 脚本中搜索和替换