Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

aws lambda - Serverless I image upload to S3 broken after deploy, local worked only

I trying to upload an image to S3 uses serverless and NodeJS but something wrong after upload. In local uses serverless-offline everything worked like champ but after deploy I got this error. Then I tried to intercept and detect what's happened and see this result:

Some strange character appeared in image body such as <0x0a> 0x01 0x04

enter image description here

I also tried to use serverless-apigw-binary but not luck.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Self Answer

Very lucky I just found the solution at binary-media-types

Add this to serverless.yml.

provider:
  # others
  apiGateway:
    binaryMediaTypes:
      - '*/*'

No need serverless-apigw-binary

No need this as well

const binaryMimeTypes = [
  'image/gif',
  'image/png',
  'image/jpeg',
  'image/jpg',
];
...

return serverless.createServer(expressApp, null, binaryMimeTypes)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...