我们正在评估替代静态文件存储的选择(该存储在多个地理位置中托管)。
我们使用Microsoft.NET平台(C#,ASP.NET,WEB API,SQL SERVER)。
我们想要将数字资产,大多数是二进制(AI,PSD,JPG,PNG,PDF,XLS,DOC ...)文件存储在任何NoSQL DB上。
对于图像文件,它可以包含缩略图(小尺寸)和原始艺术品(大文件:范围从300 MB到超过1 GB)。
缩略图将显示在网页上,但原始版本将作为附件提供,并具有编辑选项(用户可以下载原始版本并使用相应程序进行编辑和更新版本)。
每个缩略图和原始版本都需要存储多个版本。
我们不会在第三方平台(如Amazon S3,Azure)和CDN上托管这些数字资产。
这些数字资产可以根据用户系统配置托管在不同的地理环境中。 (美国用户可以将服务器/数据库存储在美国,欧洲或亚洲)。
每个存储都需要复制。
我们正在研究MongoDB。是否有人可以根据上述假设或其他替代方案提出优缺点建议?
一些MongoDB研究结果如下:
磁盘空间消耗比原始数据大小大3倍
可以通过-oplogSize参数减少空间消耗
如果我们尝试读取块并将其流式传输到浏览器,则速度比从静态文件存储中读取慢6倍。
复制不是双向的,它作为主服务器和从服务器工作。
我已经创建了原型来从静态文件系统中读取数字资产并将其存储到MongoDB GridFS中的默认块中。在将缩略图和原始版本存储到MongoDB时,哪种方法更好?由于缩略图始终小于16MB,但原始版本可能超过16MB,因此默认情况下是否应将所有图像资产存储在GridFS中?
我可以预见根据内容类型创建不同的数据库,例如:一个用于PDF,Excel,Word,另一个用于Image。
如何在不同的服务器之间进行复制?
如何在不同区域的不同MongoDB实例之间存储它?
我非常感谢任何意见。
谢谢。
我们使用Microsoft.NET平台(C#,ASP.NET,WEB API,SQL SERVER)。
我们想要将数字资产,大多数是二进制(AI,PSD,JPG,PNG,PDF,XLS,DOC ...)文件存储在任何NoSQL DB上。
对于图像文件,它可以包含缩略图(小尺寸)和原始艺术品(大文件:范围从300 MB到超过1 GB)。
缩略图将显示在网页上,但原始版本将作为附件提供,并具有编辑选项(用户可以下载原始版本并使用相应程序进行编辑和更新版本)。
每个缩略图和原始版本都需要存储多个版本。
我们不会在第三方平台(如Amazon S3,Azure)和CDN上托管这些数字资产。
这些数字资产可以根据用户系统配置托管在不同的地理环境中。 (美国用户可以将服务器/数据库存储在美国,欧洲或亚洲)。
每个存储都需要复制。
我们正在研究MongoDB。是否有人可以根据上述假设或其他替代方案提出优缺点建议?
一些MongoDB研究结果如下:
磁盘空间消耗比原始数据大小大3倍
可以通过-oplogSize参数减少空间消耗
如果我们尝试读取块并将其流式传输到浏览器,则速度比从静态文件存储中读取慢6倍。
复制不是双向的,它作为主服务器和从服务器工作。
我已经创建了原型来从静态文件系统中读取数字资产并将其存储到MongoDB GridFS中的默认块中。在将缩略图和原始版本存储到MongoDB时,哪种方法更好?由于缩略图始终小于16MB,但原始版本可能超过16MB,因此默认情况下是否应将所有图像资产存储在GridFS中?
我可以预见根据内容类型创建不同的数据库,例如:一个用于PDF,Excel,Word,另一个用于Image。
如何在不同的服务器之间进行复制?
如何在不同区域的不同MongoDB实例之间存储它?
我非常感谢任何意见。
谢谢。