Я думаю, что ваш вопрос сводится к тому, «как я могу вызвать функцию Lambda после Я загрузил папку, полную файлов, в S3?»
Если у вас нет информации априорина стороне сервера, которую вы можете использовать, чтобы определить, когда загрузка папки завершена, клиенту придется сообщить вам об этом.
Параметры, которые я бы рассмотрел:
- изменить ваш клиент, чтобы опубликовать сообщение в SNS или SQS после завершения загрузки в S3.Это сообщение может затем запустить вашу функцию Lambda.
- после того, как последний файл был загружен в папку
images/dogs/
, загрузите объект нулевого размера, ключ которого совпадает с папкой (images/dogs/
).Это «файл дозорного».Используйте триггер событий S3 с суффиксом /
, чтобы обнаружить загрузку этого объекта «папка» и запустить вашу лямбду.
Я предпочитаю 1-й вариант.Он достигает конечной цели, не приводя к посторонним объектам S3.С помощью SNS вы также можете настроить несколько последующих процессов в ответ на сообщение «Закончена загрузка» (разветвление), если необходимо.