В настоящее время я разрабатываю архитектуру для веб-приложения, которое также должно обеспечить какое-то хранилище изображений. Пользователи смогут загружать фотографии в качестве одной из ключевых функций службы. Также просмотр этих изображений будет одним из основных способов использования (через Интернет).Масштабируемое хранение изображений
Однако я не уверен, как реализовать такой масштабируемый компонент хранения изображений в моем приложении. Я уже думал о разных решениях, но из-за отсутствия опыта, я с нетерпением жду ваших предложений. Помимо изображений, метаданные также должны быть сведены. Вот мои первые мысли:
Используйте (распределенный) файловую систему как HDFS и подготовить специальные вебсервер как «файловой системы клиентов», чтобы сохранить загруженные изображения и запросы на обслуживание. Метаданные изображения сохраняются в дополнительной базе данных, включая информацию о пути к файлу для каждого изображения.
Используйте ориентированную на BigTable систему, такую как HBase, поверх HDFS и сохраняйте изображения и метаданные вместе. Опять же, веб-серверы моста загружают изображения и запросы.
Используйте полностью доступную схему, такую как CouchDB для хранения как изображений, так и метаданных. Кроме того, используйте базу данных для загрузки и доставки через HTTP-интерфейс RESTful API. (Дополнительный вопрос: CouchDB действительно сохраняет blobs через Base64. Может ли он, однако, возвращать данные в виде изображения/jpeg и т. Д.)?
Не могли бы вы подробнее рассказать о том, как вы внедрили хранилище изображений. Особенно интересно, как вы делали авторизацию. –
Авторизация была только недопустимыми URL-адресами. – max
Я имею в виду, с одной стороны, вы должны добавить изображения в хранилище изображений, и эта функция должна быть доступна для определенного пользователя, который должен быть аутентифицирован. С другой стороны, чтение должно быть доступно для всех, чтобы изображения могли отображаться пользователю. –