У меня следующий ts-код, который отправляет файл из API GraphQL в мою корзину AWS S3. он отлично работает, когда я запускаю проект, используя nodejs http lib, но когда я запускаю его, используя sls offline start
или из aws лямбда-функции, он загружает файл, но не открывается (как поврежденный файл) - кроме текстовых файлов.
код:
const fileStream = data.createReadStream()
const uploadParams = {
Bucket: 'XXX',
Key: data.filename,
Body: fileStream,
ContentType: data.mimetype,
ContentEncoding: data.encoding,
ACL: 'public-read',
};
const result = await s3.upload(uploadParams).promise()
объект данных выглядит следующим образом:
{ filename: '11083626_830419647032756_2338667058698516671_n.jpg',
mimetype: 'image/jpeg',
encoding: '7bit',
createReadStream: [Function: createReadStream] }
Я пытался преобразовать createReadStream в буфер и используйте вместо этого функцию s3.putObject (), но она все еще не работает.
Добавлены следующие конфигурации, чтобы разрешить двоичные файлы в serverless.yml
, но все еще та же проблема:
provider:
apiGateway:
binaryMediaTypes:
- '*/*'