为用户制作文件经理的最佳实践
-
01-10-2019 - |
题
我将为用户制作文件,资源管理器。我的网站提供服务帮助用户创建博客,网站并允许用户上传其资源。我将创建下面的文件夹结构。有建议吗?
usercontents
--user1
----folder1
----folder2
--user2
--user3
----my images
我应该使用数据库索引这些文件吗?
解决方案
如果我做这样的事情,首先我会做以下操作:
- 将文件类型限制为我指定的几个(Images,MP3,MP4,也许是SWF);
- 将用户名称归一化或将其限制为字母数字,以使我没有用户名文件夹冲突;
- 将文件名正常化,以便
my awesome mp3 file (some comment here).mp3
变成my-awesome-mp3-file-some-comment-here.mp3
; - 检查文件名的冲突,以便用户上传文件与上一个名称相同的文件,不会发生覆盖(转弯重复)
screenshot.png
进入screenshot-2.png
); - 一定要将子文件夹的处理方式移至数据库,使用户目录中的文件结构平整。
进一步优化:
- 在数据库中存储文件charksums,以避免在文件系统上存储重复的文件。将重复检查限制为自己的文件。
我写了一个由社区驱动的文件共享网站,我认为这显示了。 :)
其他提示
使用数据库是很有意义的,因为只有通过接口添加的文件才能可以查看(假定您是从数据库读取文件列表,而不是实际的文件系统)。
不隶属于 StackOverflow