代码之家  ›  专栏  ›  技术社区  ›  Binh Ho

无服务器I映像上传到S3部署后损坏,仅本地工作

  •  0
  • Binh Ho  · 技术社区  · 6 年前

    我试图上传一个图像到S3使用 serverless 但上传后出现了问题。在当地使用 serverless-offline 一切都像champ一样工作,但是在部署之后我遇到了这个错误。然后我试着截获并发现发生了什么,然后看到了这个结果:

    像体中出现了一些奇怪的特征,如 <0x0a> 0x01 0x04

    enter image description here

    我也试着用 serverless-apigw-binary 但不是运气。

    0 回复  |  直到 6 年前
        1
  •  2
  •   Binh Ho    6 年前

    自我回答

    很幸运我刚刚在 binary-media-types

    serverless.yml .

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

    不需要 serverless-apigw-binary

    也不需要这个

    const binaryMimeTypes = [
      'image/gif',
      'image/png',
      'image/jpeg',
      'image/jpg',
    ];
    ...
    
    return serverless.createServer(expressApp, null, binaryMimeTypes)
    
        2
  •  2
  •   varad_s    6 年前

    如果想通过lambda上传文件,一种方法是打开awsapi网关控制台。

    “API”->{YourAPI}->“设置”

    在那里你可以找到“二进制媒体类型”部分。

    添加以下媒体类型:

    保存更改。

    然后转到“Resources”->“proxy method”(例如“ANY”)—>“method Request”->“HTTP Request Headers”,并添加以下标题“Content Type”、“Accept”。

    最后部署api。

    欲了解更多信息,请访问: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-configure-with-console.html