Я пытаюсь сделать это:
- Внешний интерфейс: настроить файл для загрузки с помощью
<input type="file">
и <input type="button" onClick="...">
- Объект File извлекается с помощью
file[0]
иззначение <input type="file">
. - Используйте Javascript
Fetch
api для вызова моего AWS API-шлюза Post
API.
Я пробовал оба multipart/form-data
и application/json
в запросе.
В AWS Lambda я использовал объект буфера для потребления тела.
Я пытался использовать Buffer(body, "utf8")
, Buffer(body, "base64")
, Buffer(body, "binary")
.
Это, в свою очередь, увеличивается до
S3
для хранения с использованием
putObject
.
Проблема:
Файловый объект, который был установлен в S3
, имеет либо размер файла 0, либо какое-то случайное значение, которое не соответствует исходному размеру файла.
Файл, загруженный с S3
, открыть нельзя.
Неудачные подходы
Я рассмотрел multer
и multiparty
.Похоже, что это промежуточное программное обеспечение ExpressJS
и ожидает ввода HttpRequest
объект (это явно не упоминалось. Кажется, я достаточно невежественен, чтобы не предполагать, что они могут работать только с объектом HttpRequest
, и мне потребовалосьпока выяснить).Я также недостаточно осведомлен, чтобы не знать, как преобразовать объект события AWS в объект HttpRequest.Но, тем не менее, кажется чрезмерным использовать движок Express только для управления загрузкой файлов.
Выставление моего S3
контейнера как public-read-write
кажется довольно небезопасным.Таким образом, я не рассматриваю фронтенд, непосредственно перемещающий материал в / из моего ведра S3
.
Мой запрос
Может кто-нибудь сказать мне, как заставить это работать?И / или альтернатива этому подходу?