Я реализую API без сервера , используя:
- Шлюз API
- Лямбда
- S3 Bucket "При необходимости"
Мой поток:
- Вызов метода POST или PUT с двоичным файлом "zip ", загрузите его в Lambda.
- В Lambda: разархивируйте файл.
- В Lambda: запустите определенный скрипт над извлеченными файлами.
- В Lambda: создайтеnew zip.
- Верните его на мой рабочий стол.
Этот поток уже реализован, и он хорошо работает с небольшими файлами, 10 МБ для загрузки и 6 МБ для загрузки.Но у меня возникают проблемы при работе с большими файлами, так как это будет иметь место во многих случаях.Чтобы решить эту проблему, я думаю о следующем потоке:
- Целевой файл загружается в S3 Bucket.
- Создается новое событие и запускается Lambda.
Lambda Внутренние задачи:
3.1 Lambda Загрузить файл из корзины S3.
3.2 Lambda Сгенерировать соответствующий пакет WPK.
3.3 Lambda Загрузить сгенерированный пакет WPKв S3.
3.4. Lambda возвращает подписанный URL-адрес, связанный с загруженным файлом, в качестве ответа.
Но моя проблема с таким дизайном состоит в том, что он требует больше, чем запросчтобы закончить.Я хочу сделать весь этот процесс всего за 1 запрос, передав в него целевой zip-файл и получив новый zip-файл в качестве ответа.Любые идеи, пожалуйста?
Мои компоненты и блок-схема будет:
Компонент и блок-схема