【问题标题】:MD-5 Checksum error when uploading a file to S3 from AWS lambda从 AWS lambda 将文件上传到 S3 时出现 MD-5 校验和错误
【发布时间】:2019-02-14 15:23:13
【问题描述】:

首先我知道thisthis,但我的情况略有不同。

当我尝试从我的 AWS lambda 函数将超过 11MB 的文件上传到 S3 存储桶时出现此错误:

调用 PutObject 操作时发生错误 (BadDigest)(达到最大重试次数:4 ): 您指定的 Content-MD5 与我们收到的不符。

我的 lambda 只做这个:

  • 从 URL 获取一些内容
  • 将这些内容存储在类似文件的字符串对象中
  • 在 S3 存储桶中创建一个对象并写入这些内容

    some_huge_text_from_a_url = requests.get(url)
    contents = StringIO.StringIO()
    contents.write(some_huge_text_from_a_url)
    contents.seek(0)
    s3_client.put_object(Body=contents, Bucket=s3_bucket, Key=s3_key)
    

我从同一个线程生成并上传文件,但我仍然收到此错误。我就此联系了 AWS 支持,他们的响应有点慢。所以我想知道 SO 社区对此有什么看法。

AWS 支持建议我的文件内容在 lambda 计算 MD-5 校验和后发生变化。我看不出在上面的代码中怎么可能。

如果我想在这里看到什么,请告诉我。

【问题讨论】:

    标签: python python-2.7 amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    经过很长一段时间积累了很多经验,我才知道校验和不匹配是因为我一直使用错误的文件编码。

    我不是文件编码方面的专家,但只是将编码更改为 utf-8 导致此错误消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 2017-08-08
      • 2020-05-07
      • 2016-07-24
      • 2019-10-15
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多