我们正在使用MongoDB。在我们的应用程序中,我们需要为每个用户存储多个文件。我们的应用程序将部署在AWS上。我当时正在考虑使用以下选项之一来存储文件-
以上哪种方法更好?在性能方面,可扩展性?
哪种方法更具可扩展性?我也想使用CDN来缓存文件。
我更喜欢AWS S3,因为我可以使用CDN来缓存文件,所以我对文件的存储将与数据库无关。另外,当我将文件存储在数据库外部时,数据库的大小不会显着增加。
最佳答案
我认为最好的选择是GridFS和S3。我本人会和后者一起去的。将文件推送到S3,然后将存储区名称和文件 key 存储在Mongo文档中。除非您的业务或查询要求必须在文档中包含所有数据,否则我认为这是最好的方法。
我已经在生产中使用了该解决方案,并且可以轻松扩展。对您的Mongo集合的影响很小,您不必担心在那里存储大量数据。只需存储 key ,然后让S3负责所有这些工作即可。由于您的系统与存储完全无关,因此您以后随时可以将它们存储在其他位置。
关于MongoDB-将文件存储在数据库中还是外部存储中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336486/