我的用户文件夹应该在 Slim 3 项目中的什么位置?
Where should my users folder be in a Slim 3 project?
我目前正在使用 Slim 3 构建一个简单的文件托管脚本。目前我的用户文件夹与 public 目录处于同一级别。现在我正在尝试访问用户文件夹中的文件,但我收到了由于我的文档根目录无法访问我的用户文件夹而导致的错误。将我的用户文件夹放在我的 public 文件夹中会更好吗,因为从技术上讲,这将是登录用户的 public 信息?
这取决于这些文件是什么——它们是仅供特定用户使用还是可供所有用户使用。
当文件必须保密时,您不能将它们放入 public,这很简单,因为每个人都可以破解 url 并访问它们。所以你应该把它们放在任何 data
目录中,并使用像 /file/{username}/{name}
.
这样的端点使它们可用
在这样的端点中,您可以轻松地附加 Header 关于文件类型,或者它是否应该下载或尝试在浏览器中显示 window。
无论您向网络服务器公开提供什么,默认情况下都会像处理任何其他资产一样处理:
- 其URL以实际文件名为准
- 如果你知道 URL 你可以下载它
- 如果是
.php
文件,它将被执行
您当然可以解决所有这些问题(其中一些问题甚至可能与您的用例无关),但我认为这不是典型的用户管理目录树的理想布局。你目前的做法对我来说更有意义。
要访问此类文件,您需要创建一个正确的下载脚本来进行所有适当的检查(例如访问检查),匹配来自 URLs 的文件系统内容并将资产作为静态文件提供。在 Slim 中,这意味着创建一个带有参数的路由并编写一个处理函数来完成所有这些事情。
我目前正在使用 Slim 3 构建一个简单的文件托管脚本。目前我的用户文件夹与 public 目录处于同一级别。现在我正在尝试访问用户文件夹中的文件,但我收到了由于我的文档根目录无法访问我的用户文件夹而导致的错误。将我的用户文件夹放在我的 public 文件夹中会更好吗,因为从技术上讲,这将是登录用户的 public 信息?
这取决于这些文件是什么——它们是仅供特定用户使用还是可供所有用户使用。
当文件必须保密时,您不能将它们放入 public,这很简单,因为每个人都可以破解 url 并访问它们。所以你应该把它们放在任何 data
目录中,并使用像 /file/{username}/{name}
.
在这样的端点中,您可以轻松地附加 Header 关于文件类型,或者它是否应该下载或尝试在浏览器中显示 window。
无论您向网络服务器公开提供什么,默认情况下都会像处理任何其他资产一样处理:
- 其URL以实际文件名为准
- 如果你知道 URL 你可以下载它
- 如果是
.php
文件,它将被执行
您当然可以解决所有这些问题(其中一些问题甚至可能与您的用例无关),但我认为这不是典型的用户管理目录树的理想布局。你目前的做法对我来说更有意义。
要访问此类文件,您需要创建一个正确的下载脚本来进行所有适当的检查(例如访问检查),匹配来自 URLs 的文件系统内容并将资产作为静态文件提供。在 Slim 中,这意味着创建一个带有参数的路由并编写一个处理函数来完成所有这些事情。