我正在尝试构建一个文件上传站点作为辅助项目,我从来没有构建任何需要处理大量这样的文件的东西。据我所知,存储和检索文件有三个主要选项(请注意,每次上传可能有多个文件,因此,例如,website.com/a23Fc可能允许您下载单个或多个文件,具体取决于用户最初上传的数量 - 类似于imgur.com):
其中哪些似乎最具扩展性?就像我说的那样,我在这方面的经验很少,所以如果我完全关闭,或者如果有明显的第四选择,我不仅仅对它持开放态度。在一个目录中有数千或数百万个文件(即选项1)似乎不太聪明,但在目录中拥有数千或数百万个目录(即选项3)似乎并没有那么好。
答案 0 :(得分:3)
我曾经工作的公司面临着大约1 PB图像文件的确切问题。他们的解决方案是使用安德鲁文件系统(请参阅http://en.wikipedia.org/wiki/Andrew_File_System了解更多信息)将文件存储在与URL结构匹配的目录结构中。这在实践中非常好。
他们还记录了数据库中存在的文件,原因是其应用程序内部的其他原因。
答案 1 :(得分:0)
我建议您在最短的时间内完成个人解决方案。如果你已经有CouchDB工作原型,那就去吧!面向关系或面向文件系统的解决方案也是如此。
由于两个原因,上市时间比架构更重要:
答案 2 :(得分:0)
如果您要使用ASP.NET,请参阅此文章,该文章介绍如何将Web文件系统用于Web场http://weblogs.asp.net/owscott/archive/2006/06/07/DFS-for-Webfarm-Usage---Content-Replication-and-Failover.aspx