从浏览器将图像文件上传到 AWS Lambda .Net Core 应用程序会导致文件无法使用 - 如何修复?

Uploading image file to AWS Lambda .Net Core application from browser results in unusable file - how to fix?

我正在从我的浏览器上传一个 jpg 图像,作为表单的一部分,到我的 .Net Core 网站 api,它驻留在 AWS Lambda 上。它上传了,但当我尝试使用 ImageSharp 处理它时出现错误。我还注意到上传版本的文件大小几乎是原始文件大小的两倍。请注意,从 Visual Studio 2019 Preview 在我的 Windows 环境 运行 本地上传时没有问题。这是从 Visual Studio 发布到 AWS Lambda 的版本有问题。

更多信息:图像作为 IForm 中的 IFormFile 到达我的 .NET 控制器。

AWS 在文件到达 AWS Lambda 之前对其进行了处理。该修复实施起来很简单。

在 Amazon 控制台中,转到服务,然后转到 API 网关页面。 (现在请参考下图!)Select 您的 API 并在您的 API 下转到设置。添加这些二进制类型:

  1. image/jpeg
  2. multipart/form-data

然后点击保存。

现在单击资源,然后单击操作和 select 部署 API。

现在select一个舞台。 (我在出现的框中将舞台设置为 Prod。)然后单击 Deploy 按钮。

此时您应该可以开始了。如果不是,可能是缓存问题没有跟上。如果是这种情况,也许重做上面的部署 api 过程。也许这会消磨缓存刷新或推送缓存刷新的时间,但很快它就会以这种或那种方式工作。