我有一个存储大量用户生成文件的Web应用程序.目前,这些文件都存储在服务器文件系统上,这对我来说有几个缺点.
- 当我们移动"文件夹"(由我们的应用程序定义)时,我们还必须移动磁盘上的文件(尽管这更多地是由于原始开发人员的奇怪设计决定,而不是将内容存储在文件系统上的要求).
- 很难为文件系统操作编写测试;我有一个模拟文件系统类,它记录移动、删除等操作,而不执行这些操作,这或多或少可以完成这项工作,但我对测试没有100%的信心.
- 我将添加一些其他作业(job),这些作业(job)需要从其他服务访问文件,以执行其他任务(例如,在Solr中建立索引、生成缩略图、电影格式转换),因此我需要远程获取文件.在网络共享上这样做似乎很危险...
- 在过go ,处理文件系统上的权限有时会给我们带来问题,尽管现在我们已经转向纯Linux环境,这应该不是什么问题.
所以,我的主要问题是
- 在MySQL中将文件存储为BLOB有什么缺点?
- 像Cassandra这样的NoSQL系统也存在同样的问题吗?
- 是否有人有其他合适的建议,例如MogileFS等?