【问题标题】:File corruption when uploading image files to S3 via PUT request (Amazon S3 Proxy)通过 PUT 请求(Amazon S3 代理)将图像文件上传到 S3 时文件损坏
【发布时间】:2019-09-25 07:25:45
【问题描述】:

我一直在使用本教程(特别是关于上传/下载二进制文件的部分)作为指南:https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html

我的问题是,当我通过 AWS S3 代理将 jpg/png 文件上传到 S3 时,文件最终损坏。一旦它们最终进入 S3,它们最终会具有稍大的文件大小。对于我通过 PUT 请求上传的文本文件,情况并非如此——它们的文件大小不会改变,我在浏览器中打开和阅读它们没有问题。

按照上述指南,我确保将上传的所有文件类型添加到我的二进制媒体类型列表中。我还需要在我的标题中包含 Content-Type (这是目前我在标题中包含的唯一内容,因为我还没有设置 API 密钥 - 有什么我遗漏的吗)。我的二进制媒体类型列表中的文件类型是:

图片/png

图片/jpg

文本/纯文本。

最后,我确保按照教程的建议将内容处理设置为直通。我不确定我做错了什么。我尝试将我的数据作为编码的 64 位字符串发送(不确定是否需要),但问题仍然存在。 (我也将其作为未编码的数据发送)。我正在使用 python3 和 requests 库来提出我的请求。有什么想法或建议吗?

【问题讨论】:

  • 问题解决了吗?我遇到了完全相同的问题。
  • 我已经很久没有研究这个问题了,但我认为我的问题来自于我的 API Gateway 中没有启用 CORS

标签: amazon-web-services amazon-s3 aws-api-gateway


【解决方案1】:

供以后参考这个问题主要是因为在API网关中处理二进制数据,已经回答here

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2020-02-02
    相关资源
    最近更新 更多