我目前正在为基于 Web 的应用程序设计一个架构,该架构还应该提供某种图像存储。用户将能够上传照片作为该服务的主要功能之一。查看这些图像也是主要用途之一(通过网络)。
但是,我不确定如何在我的应用程序中实现这种可扩展的图像存储组件。我已经考虑过不同的解决方案,但由于缺少经验,我期待听到您的建议。除了图像,还必须保存元数据。以下是我的初步想法:
使用像 HDFS 这样的(分布式)文件系统,并准备专用的网络服务器作为“文件系统客户端”,以保存上传的图像和服务请求。图像元数据保存在一个附加数据库中,包括每个图像的文件路径信息。
在 HDFS 之上使用 HBase 等面向 BigTable 的系统,并将图像和元数据一起保存。同样,网络服务器桥接图像上传和请求。
使用像 CouchDB 这样完全无模式的数据库来存储图像和元数据。此外,使用基于 HTTP 的 RESTful API 使用数据库本身进行上传和交付。(附加问题:CouchDB 确实通过 Base64 保存 blob。但是它能否以图像/jpeg 等形式返回数据)?