我目前正在开发一个网站,其中应该向其用户提供大约4000万份文档和图像.我需要建议哪种方法最适合存储符合这些要求的内容.
- 系统应具有高可用性,可扩展性和耐用性.
- 文件必须永久存储,用户应该能够修改它们.
- 由于客户端的限制,第三方对象存储提供商(如Amazon S3和CDN)不适合.
- 内容的文件大小可以从1 MB到30 MB不等.(但是大约90%的文件小于2 MB)
- 内容检索延迟不是什么大问题.因此索引或缓存不是很重要.
我做了一些研究,发现了以下解决方案;
- 将内容存储为数据库中的BLOB.
- 使用GridFS来分块和存储内容.
- 使用散列将内容存储在目录中的文件服务器中,并将元数据存储在数据库中.
- 使用分布式文件系统(如GlusterFS或HDFS)并将文件元数据存储在数据库中.
该网站使用PHP开发,Couchbase Community Edition用作数据库.
我真的很感激任何输入.
谢谢.