Масштабируемое хранилище изображений

В настоящее время я разрабатываю архитектуру для веб-приложения, которое также должно обеспечивать хранение изображений. Пользователи смогут загружать фотографии как одну из ключевых функций сервиса. Также просмотр этих изображений будет одним из основных видов использования (через Интернет).

Однако я'Я не уверен, как реализовать такой масштабируемый компонент хранения изображений в моем приложении. Я уже думал о различных решениях, но из-за отсутствия опыта я с нетерпением жду ваших предложений. Помимо изображений, метаданные должны быть сохранены. Вот мои первые мысли:

Используйте (распределенную) файловую систему, такую как HDFS, и подготовьте выделенные веб-серверы какфайловая система клиентов " для сохранения загруженных изображений и запросов на обслуживание. Метаданные изображения сохраняются в дополнительной базе данных, включая информацию о пути к файлу для каждого изображения.

Используйте ориентированную на BigTable систему, такую как HBase, поверх HDFS и сохраняйте вместе изображения и метаданные. Опять же, веб-серверы блокируют загрузку изображений и запросы.

Используйте полностью безсхемную базу данных, такую как CouchDB, для хранения изображений и метаданных. Кроме того, используйте саму базу данных для загрузки и доставки с помощью API-интерфейса RESTful на основе HTTP. (Дополнительный вопрос: CouchDB сохраняет BLOB-объекты через Base64. Может ли он возвращать данные в виде изображений / JPEG и т. Д.)?

Ответы на вопрос(11)

Ваш ответ на вопрос