【发布时间】:2020-07-17 22:21:33
【问题描述】:
我有以下 ts 代码将来自 GraphQL API 的文件提交到我的 AWS S3 存储桶。
当我使用 nodejs http lib 运行项目时,它可以完美运行,但是当我使用 sls offline start 或从 aws lambda 函数运行它时,它会上传文件但无法打开(如损坏的文件) - 文本文件除外.
代码:
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:
- '*/*'
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda graphql serverless-framework