Во-первых, я знаю это и это , но мой случай немного отличается.
Я получаю эту ошибку, когда пытаюсь загрузить файлы размером более 11 МБ в сегменты S3 из своей лямбда-функции AWS:
Произошла ошибка (BadDigest) при вызове операции PutObject (достигнуто максимальное количество попыток: 4 ): Указанный вами Content-MD5 не соответствует полученному нами.
Моя лямбда делает только это:
- Получить содержимое из 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 по этому поводу, они немного медлительны, чтобы ответить. Поэтому я хочу знать, что об этом говорит Сообщество.
Поддержка AWS предполагает, что содержимое моего файла изменяется после вычисления контрольной суммы MD-5 лямбда-выражением. Я не вижу, как это возможно в приведенном выше коде.
Пожалуйста, скажите мне, если я скучаю, чтобы увидеть что-то здесь.