2

语境:

我刚刚编写了一个 PHP 文件上传处理程序,它将任何传入文件保存到我网站的上传目录。上传目录可通过网络公开访问,目前每个文件在使用数据库生成的唯一 ID 重命名后直接转储到其中。处理程序将允许除 JS 和 PHP 之外的任何文件类型,而不仅仅是图像。最终文件的数量可能会达到数千个,但这需要几年的时间。

我的问题:

将所有上传的文件放在服务器上的同一目录中是个好主意还是坏主意,如果不是,请解释原因,以及更好的方法?

我注意到 wordpress 将它们存储在以日期命名的目录中。

我能看到的唯一真正的缺点是,ls一旦目录中有几千个文件,目录上的 a 可能会占用大量资源。还是对一个目录中的文件数量或一个目录的总大小(运行 Linux)有限制?

关于安全性的稍微先发制人的说明:

上传处理程序可以防止任何人登录管理员级别的用户上传文件,并且它也不会保存 PHP 或 JS 文件(至少在我可以使用数组type中的属性可靠地测试它们的情况下),因为这些文件可能会被执行$_FILES由服务器。我计划实施的另一个保护措施是.htaccess阻止对某些文件类型的请求的文件,以防万一。任何关于这方面的说明也将受到欢迎,但这不是这个问题的一部分。

4

2 回答 2

2

在组织文件方面没有固定的标准。但是,将所有文件放在一个目录中并不是一个好主意。它最终会开始影响系统的性能,尤其是在索引方面。

您可以做 WordPress 所做的事情,按年、月和日期进行组织。您也可以按文件类型(扩展名)进行组织,因此有一个 PDF 目录、一个 ZIP 目录等,其中可能包含年/月/日目录以便进一步分类。

于 2012-04-26T17:10:31.320 回答
1

如果是我,我会按天或某个时间值分解它。您正在谈论(可能)数千个未知大小的文件。您最终将不得不围绕此构建存储,并且可能希望将部分移动到其他卷、档案等。

我还会确保每个文件都是 chmod -x 并给出一些中性的后缀。

编辑:我也同意@NADH 关于索引的看法。当文件夹中有数千个文件时,许多操作系统会变得很挑剔。

于 2012-04-26T17:04:30.870 回答