Лямбда-функция AWS - загрузка изображений - проверка процесса - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь лучше понять, как весь поток должен работать с AWS Lambda и моим веб-приложением.

Я бы хотел, чтобы клиент загрузил файл в общедоступную корзину (полностью обойдя мои ресурсы API).), с пользовательским интерфейсом клиента, помещая его в папку для своей учетной записи на основе GUID.Оттуда я запускаю лямбду, когда она обнаруживает изменение в общедоступном сегменте, затем изменяет размер файла и помещает его в обработанный сегмент.

Однако мне нужно обновить строку в моей базе данных RDS.,

Issue

Я изо всех сил пытаюсь понять, как лучше всего определить строку для обновления.Должен ли я загружать другой файл с необходимыми подробностями (где каждая загрузка изображения на самом деле состоит из двух файлов - изображения и конфигурации json)?Должно ли изображение обрабатываться, и тогда клиент получает некоторые данные и делает запрос API для обновления строки в базе данных?Каков правильный поток для этого шага?

Спасибо.

Ответы [ 2 ]

1 голос
/ 15 июня 2019

Вы должны использовать предварительно подписанный URL для загрузки.Это позволяет вашему приложению накладывать ограничения на загрузку, такие как тип файла, каталог и размер.Это означает, что, когда файл загружен, вы уже знаете, кто сделал загрузку.Это также предотвращает случайную загрузку людей в корзину, поскольку она не должна быть общедоступной.

Затем загрузка может использовать событие Amazon S3 для запуска функции Lambda.Имя файла / местоположение может использоваться для идентификации пользователя, поэтому база данных может быть обновлена ​​во время обработки файла.

См .: Загрузка объектов с использованием предопределенных URL-адресов - Amazon Simple Storage Service

0 голосов
/ 15 июня 2019

Я бы не стал загружать файл напрямую в S3 в обход API. Загрузка файла из вашего API позволяет вам контролировать тип файла, его размер и т. Д., А также вы будете знать, кто именно загружает файл (идентификатор авторизации API или идентификатор пользователя в теле API). Это также угроза безопасности, открывающая публичное ведро для записей.

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

...