【问题标题】:Serverless framework + Express.js | Uploading images turns out corrupt/broken无服务器框架 + Express.js |上传图像结果损坏/损坏
【发布时间】:2021-08-21 09:52:44
【问题描述】:

我已经花费了太多时间来让它工作,我看到类似的问题发布在 SO 上,但我还没有找到可以解决我的问题的解决方案。

我使用无服务器框架创建了一个 REST API。我现在想创建一个端点,用户可以向其发送带有图像的 POST 请求,如正文中的表单数据。

我在这里有端点:

端点使用中间件uploader.single('param'),然后将结果传递给函数uploadImage


中间件如下所示:


图像由库“multer”存储:


但是坏了


我读到您可能需要将 binaryMediaTypes 添加到 serverless.ts 中的 apiGateway 提供程序,所以我做了以下操作:

谁能帮我解决这个问题?

【问题讨论】:

    标签: typescript amazon-web-services express serverless-framework


    【解决方案1】:

    我怀疑该错误是您的多部分处理程序的边缘情况或编码问题,或者可能是serverless-offline 插件的错误。但这有点无关紧要。

    很难找到解决此问题的方法的原因是您选择的路径与无服务器开发理念不兼容。 Lambda 在其执行环境中没有任何文件系统空间(嗯,几 MB。但是一旦 lambda 执行完成,该空间就会被释放)。您需要将这些图像存储在其他地方,比如 S3 之类的持久性地方。

    最好创建一个 API 端点,该端点为 S3 存储桶返回 presigned URL

    然后您的用户可以将图像上传到该 URL。

    这是一篇很好的文章,它列出了这个确切的用例:https://serverlessfirst.com/serverless-photo-upload-api/

    【讨论】:

    • 优秀的答案!非常感谢你的答复。为我节省了更多时间的挫败感!
    猜你喜欢
    • 2020-08-22
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2019-10-02
    • 2012-08-03
    • 1970-01-01
    相关资源
    最近更新 更多