0

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

В настоящее время мы работаем с временными файлами, мы создаем по одному для каждого изображения, которое необходимо отправить по Aws S3, и оптимизировать/настроить его в зависимости от наших потребностей. Как только все это будет сделано, мы подтолкнем его к S3.

Теперь это работает, но есть накладные расходы файловой системы, которые я хотел бы удалить, используя кодировки base64 изображения, что делает процесс полностью отделенным от системы, в которой работает приложение.

Поскольку мы собираемся использовать Amazon SQS (в настоящее время мы используем Beanstalkd на производстве), их служба не позволяет загружать более 256 килобайт полезной нагрузки в очередь, и это проблема, поскольку изображения довольно тяжелые.

Какие решения по-прежнему доступны для изучения?

+0

Отправлять промежуточный файл на S3 и ссылаться на его временный адрес местонахождения в сообщении SQS, может быть? –

+0

Это идея, если это поддерживал только PHP SDK ... Я видел, что AWS разработал расширенный клиент, но только для Java. Хмм. – GiamPy

+0

SDK не поддерживает автоматическую поддержку SQS, но нет очевидной причины, по которой вы не можете просто сохранить файл в S3 самостоятельно и включить URI в сообщение SQS. –

ответ

1

Вы можете посмотреть разбивку файла на подходящие размеры сообщений, в этом случае 256 КБ, пометить сообщения соответствующими номерами последовательностей и поставить в очередь. На другом конце приема сообщения повторно собирают сообщения в порядке и записывают в файл или выводят данные изображения на дальнейшие этапы вашего решения.

+0

SQS принимает только допустимый UTF-8 как полезную нагрузку, а не двоичные данные, поэтому для транспорта должен быть закодирован base64. Потенциальная неточная доставка также делает это немного хрупким. –

+0

Хорошо. Благодарю. Но нет ли способа/конфигурации для обеспечения доставки? – Shashi

+1

№ AWS SQS не гарантирует, что порядок, с которым вы отправили задания, будет таким же, когда вы собираетесь их получать. Вам необходимо обработать его на уровне приложения. – GiamPy

 Смежные вопросы

  • Нет связанных вопросов^_^