gpt4 book ai didi

filesystems - 在文件系统中存储上传文件的最佳实践

转载 作者:行者123 更新时间:2023-12-03 17:21:54 25 4
gpt4 key购买 nike

存储从用户上传的文件的最佳做法是什么?

目前,我正在使用以下存储文件的方法:

<web_app_root>/course_material/<term_id>/<course_id>/<file_id>

如您所见,文件是根据数据库中的键存储的。我认为这更安全,因为我不必过滤文件名并将不安全的字符转换为安全的字符。

但是,我正在开始一个新项目,想知道将 Web 应用程序的文件系统与数据库如此紧密地联系在一起是否是一个坏主意。我应该以更易读的格式存储文件吗?
<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored>

如果是这样,过滤文件名以确保安全的最佳方法是什么?还是我目前的做法是最佳实践?

最佳答案

我总是将文件存储在具有基于唯一 GUID 的文件名的目录中,并将 guid 映射到数据库中的文件。只要您不手动浏览文件等,这可能是最简单的解决方案(也可以绕过无效字符)。

另一种选择是将它们作为 BLOBS 存储在数据库中。我也这样做了 - 但它是为了填充现代 NAS 设备应该处理的复制 DR 场景。

如果您认为出于某种原因需要在应用程序外部手动浏览文件,那么使用长名称或短名称(无论您想浏览它们)会更简洁。

关于filesystems - 在文件系统中存储上传文件的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/331852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com