php - Laravel 文件隐私
问题描述
我有一个应用程序,用户可以在应用程序内注册,他们可以上传自己的文件。
我的问题是,如何以这种方式为文件添加隐私,未经身份验证无法访问文件,每个用户只能访问自己的文件
解决方案
这里的答案取决于这一切需要有多安全。
您可以在上传文件时为其生成一个长而随机的文件名。这些很难猜到——就像一个相当强的密码——而且在大多数情况下都能解决问题。
如果您使用以下方法,Laravel 实际上会本机执行此操作store()
:
$path = $request->file('avatar')->store('avatars');
如果您需要更多的安全性,您可以将上传的文件存储在非公开的地方。然后,添加一个路由(如download/{id}
),让该路由检查用户对相关文件的权限,并在获得授权的情况下将文件提供给浏览器:
return Storage::download('path/to/the.file');
Storage::download
通过 Laravel 代理文件,因此这甚至适用于未存储在公用文件夹中的文件。
推荐阅读
- javascript - 如何在 python 中调用 Javascript 函数?
- jquery - Summernote 不会加载工具栏面板
- timer - 设置一个重复的 24:00:00 倒计时计时器,该计时器在 00:00:00 停止并重置
- python - 我收到一个错误 KeyError Feature not in dictionay
- c# - 返回实例化对象时的空对象?
- c++ - 解析编译错误:没有匹配函数调用 'std::pair<,>::pair()'
- python - Python:numpy.arange 等效函数,具有最小值、最大值和“箱数”而不是“步数”?
- google-cloud-platform - google-cloud-cpp 的 CMake 失败
- ruby-on-rails - 使用 Rails 显示存储在 Amazon S3 上的 PDF
- java - 有没有办法保存android应用程序的当前用户状态