当一个人想要将成千上万个(可能是数百万个)文件(图像类型)存储到Web服务器上时,Web服务器将收到来自多个客户端的大量请求,那么最好的方法就是存储图像。 据我所知,我看到以下4个选项(可能还有更多)
如果选择FS,则仍然需要一种方法来存储文件名及其位置的映射,并且使用FS还需要考虑其他事项,例如复制,分片(不存在)等
如果我们选择RDBMS,那么从该列表中删除它似乎是一种意见,因为RDBMS最终使用了文件系统,因此需要添加额外的一层处理数据。另外,RDBMS需要具有固定大小的图像文件,不能为动态(AFAIK)。
如果选择NoSQL,我对这个选项一无所知,但可能是上述两个选项的优点的组合。
如果我们选择S3或对象存储,我认为这对于在这种情况下非常理想,因为我们具有基于文件系统的系统,并且在上述情况下搜索速度更快。但这将增加通过网络进行的大量数据传输,因为在大多数情况下S3和Web服务器可能不在同一位置。 同样,即使我们将图像文件存储在S3中,我们仍然需要维护名称和S3对象名称/位置的映射。 但是使用S3,提供商可以轻松地处理所有可用性和可伸缩性因素。
最后,我仍然对选择哪个选项持怀疑态度,因此这个问题!
感谢您的回复!