ash*_*exm 11
优点:对于在后端摆弄系统的人来说,它们在逻辑上是清晰的 - 这就是真的.
缺点:当您删除公司等时,"更难"清理并且您必须确保没有任何目录名称重叠,通常更多的工作从开始.
优点从技术上讲,清理起来要容易一些,而不是那么多工作.
缺点您必须至少编写一个非常基本的碰撞检测算法和一个非常基本的"随机名称生成器".
警告:在这个论点中已经失去了许多生命!
优点:参照完整性,备份/恢复更简单,分类
缺点:充满陷阱,可能更慢,更先进的存储/检索技术,潜在的性能问题和网络请求的增加.此外,大多数廉价的托管服务提供商的数据库太可怕了,这是一个好主意.
我强烈建议只使用散列文件名并将其(文件名)存储在数据库中,然后将图像存储在磁盘上的文件夹(或许多文件夹)中.从长远来看,这应该会更容易,并且总体上表现更好而不会变得太复杂.
我会更进一步:在将每个文件存储到文件系统之前计算每个文件的MD5总和.您可以使用前两个字符作为第一级的目录名,接下来的两个字符作为第二级的目录:
vv 1st level
61f57fe906dffc16597b7e461e5fce6d.jpg
^^ 2nd level
Run Code Online (Sandbox Code Playgroud)
由于散列算法具有相同的分布,这将在文件夹之间平均分配您的文件(这个想法来自Squid如何组织它的文件缓存).服务器应该像这样返回URL(例如,没有关于目录的概念):
http://server.com/images/61f57fe906dffc16597b7e461e5fce6d.jpg
你可以申请mod_rewrite实际重写这个网址:
/storage/images/61/f5/7fe906dffc16597b7e461e5fce6d.jpg
这也将增加一定程度的匿名性并隐藏真实的图像名称.此外,如果您的客户打算上传相同的内容,它将最终在同一个文件中,这将节省您的磁盘空间.从一个客户端删除文件时要小心:它也可能被其他人使用!
| 归档时间: |
|
| 查看次数: |
3697 次 |
| 最近记录: |