Bin*_* Ho 7 image-upload aws-lambda serverless
我尝试将图像上传到 S3 使用serverless
和 NodeJS,但上传后出现问题。在本地使用中,serverless-offline
一切都像冠军一样工作,但部署后我收到此错误。然后我尝试拦截并检测发生了什么并看到这个结果:
图像主体中出现了一些奇怪的字符,例如<0x0a>
0x01
0x04
我也尝试过使用serverless-apigw-binary
,但运气不好。
自我回答
很幸运我刚刚在binary-media-types找到了解决方案
将其添加到serverless.yml
.
provider:
# others
apiGateway:
binaryMediaTypes:
- '*/*'
Run Code Online (Sandbox Code Playgroud)
不需要serverless-apigw-binary
也不需要这个
const binaryMimeTypes = [
'image/gif',
'image/png',
'image/jpeg',
'image/jpg',
];
...
return serverless.createServer(expressApp, null, binaryMimeTypes)
Run Code Online (Sandbox Code Playgroud)
以下方法对我有用。
如果想通过 lambda 上传文件,一种方法是打开 AWS API Gateway 控制台。
去
“API”-> {YourAPI}->“设置”
在那里您将找到“二进制媒体类型”部分。
添加以下媒体类型:
多部分/表单数据
保存您的更改。
然后转到“资源”->“代理方法”(例如“ANY”)->“方法请求”->“HTTP 请求标头”并添加以下标头“Content-Type”、“Accept”。
最后部署你的 api。
归档时间: |
|
查看次数: |
3665 次 |
最近记录: |