从AWS lambd将文件上载到S3时出现MD5校验和错误

2024-05-13 18:33:14 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我知道this和{a2},但我的情况略有不同。在

当我试图从AWS lambda函数将超过11MB的文件上载到S3存储桶时,我遇到了这个错误:

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

我的lambda只做这个:

  • 从URL获取一些内容
  • 将这些内容存储在类似文件的字符串对象中
  • 在s3bucket中创建一个包含这些内容的对象

    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的支持人员,他们反应有点慢。所以我想知道社区对此有什么看法。在

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

请告诉我,如果我错过了看这里的东西。在


Tags: 文件对象lambdatextfromawsurl内容
1条回答
网友
1楼 · 发布于 2024-05-13 18:33:14

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

当谈到文件编码时,我不是专家,只是简单地将编码改为utf-8就可以消除这个错误。在

相关问题 更多 >