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

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

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

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

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

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

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

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