【问题标题】:What are the advantages of using MongoDB as a file storage instead of Amazon S3?使用 MongoDB 作为文件存储而不是 Amazon S3 有哪些优势?
【发布时间】:2021-11-11 03:50:05
【问题描述】:
对于我的课程项目,我必须开发一个 Telegram 机器人。该机器人托管在 Heroku 上。
对于这个机器人,我需要存储图像。我想到了两个选择——Amazon S3 和 MongoDB。由于图像很小且数量不多,因此两种服务似乎都是平等的。因此,我想听听其他开发者的意见,因为我必须证明我的选择是正确的。
文件只会由版主上传,这种情况很少发生。最终用户只会阅读这些图像。
哪一个更容易与 Heroku 应用集成?哪一个更容易管理?
我很乐意看到其他相关点。
【问题讨论】:
标签:
mongodb
amazon-s3
heroku
【解决方案1】:
Amazon S3(类似于 Dropbox 等文件远程存储)更适合存储文件(图片、文档等)。它们比数据库便宜,并且可以更好地扩展。
从开发的角度来看,处理普通文件更容易,因为您(通常)只需要执行 put、get 和 delete 等操作>.
MongoDB 适合以结构松散的方式存储数据:您可以方便地搜索、排序、添加和编辑数据。
从处理数据库的开发角度来看,它涉及配置/管理连接并使用相关 API 来存储/获取数据。
显然,最终的选择是在工作量/复杂性和收益之间进行权衡:如果您已经将 MongoDB 用于元数据,那么存储图像也可能很方便(并避免额外的存储)。
根据我的经验,文件在文件系统上存储和管理更好。
DB确实可以用来存储图片,你可以阅读一篇有趣的辩论here.