Jak naprawić błąd awscli s3 „Określona zawartość MD5 nie pasuje do tego, co otrzymaliśmy” (BadDigest)?

0

Przesyłanie pliku od 10 GB do s3 kończy się niepowodzeniem z:

aws s3 cp 'foo.log.gz' s3://mybucket/2018/12/ --storage-class REDUCED_REDUNDANCY
upload failed: ./foo.log.gz to s3://mybucket/2018/12/foo.log.gz 

An error occurred (BadDigest) when calling the UploadPart operation (reached max retries: 4): The Content-MD5 you specified did not match what we received.

Jak obejść ten błąd?

user51070
źródło

Odpowiedzi:

0

To działało częściowo: md5 jest źle, należy użyć sha256, ustawienie to pomaga:

aws configure set default payload_signing_enabled = true

Drugie rozwiązanie
Zagadnienie bardziej szczegółowe dotyczy: http://tracker.ceph.com/issues/20447

Jeszcze głębiej: https://github.com/ceph/ceph/pull/15965/files

TLDR
Niektóre regiony używają TYLKO „sygnatur v4” (podobnie jak eu-central-1). W awscli występuje błąd w podpisywaniu sha2.

Problem dotyczy tylko wysyłania wielu części. Jeśli minimalny rozmiar śmieci jest większy niż plik, błąd w częściowym śpiewaniu nie jest śmiertelny:

aws configure set  multipart_chunksize = 20GB
user51070
źródło