我正在开发一个 web 项目,在不同的应用程序中分开(使用 SSO 让用户同时登录所有应用程序),用户可以在所有应用程序中上传文件。
问题是,每个应用程序都以自己的方式上传文件,将文件上传到自己的位置,从而使服务器变得混乱并无法追踪文件属于哪个文件。
我想为此开发一个组件,以便所有应用程序通过它上传并跟踪每个用户配额、文件等。
因为我可以自己弄清楚如何做到这一点,所以我想知道这样做是否有好的做法。有没有我可以阅读的文章?有没有可用的系统?另外,如果您想知道的话,我正在使用 PHP。
我正在开发一个 web 项目,在不同的应用程序中分开(使用 SSO 让用户同时登录所有应用程序),用户可以在所有应用程序中上传文件。
问题是,每个应用程序都以自己的方式上传文件,将文件上传到自己的位置,从而使服务器变得混乱并无法追踪文件属于哪个文件。
我想为此开发一个组件,以便所有应用程序通过它上传并跟踪每个用户配额、文件等。
因为我可以自己弄清楚如何做到这一点,所以我想知道这样做是否有好的做法。有没有我可以阅读的文章?有没有可用的系统?另外,如果您想知道的话,我正在使用 PHP。
您需要做的第一件事就是开始 :) 因为这毕竟是编程,反复试验。您可能会发现自己必须重新开始任务的一半,但这在工作描述中。
但我同意在开始之前制定计划非常有用。我不知道任何涵盖正确做事的良好实践和标准的教程,但我会尝试给你一些提示。
<FilesMatch ".(htaccess|htpasswd|php|js|exe|bat)$"> // extentions to block
Order Allow,Deny
Deny from all
</FilesMatch>
您还可以考虑使用白名单而不是黑名单。
如果您有很多文件,您可以以哈希表的形式创建文件夹结构。例如,您可以去除非字母数字字符,并根据文件的第一个字母创建 2 级文件夹。
例子:
test_image.png => 上传/app_x /t/e/
test_image.png
another_img.png => 上传/app_x /a/n/
test_image.png
您也可以为此使用日期(就像wordpress一样):
test_image.png => 上传/app_x /2013/02/27/
test_image.png
another_img.png => 上传/app_x /2013/02/26/
test_image.png
如果您有用户上传的文件,您可能需要为每个用户创建一个文件夹(uploads/app_y/user_x/his_file.pdf)。
这将使在服务器上查找文件的速度更快。最好在开始之前记住文件夹结构,并且最好考虑所有可能的文件类型。
当我回到家时会继续这个列表,但这应该是一些值得深思的地方。