2012-11-15 5 views
23

Gdy używam s3cmd ciągnąć w dół plików (z uzasadnioną wielkości - mniej niż 100 megabajtów) od czasu do czasu zobaczyć ten błąd: UWAGA: Podpisy MD5 nie pasują: Obliczone = bla, otrzymał = „Nie-bla”aws s3 - s3cmd: "OSTRZEŻENIE: sygnatury MD5 nie pasują do siebie:" - co zrobić?

Googling sugeruje, że może to być spowodowane przez pliki segmentów S3. Inni mówili, żeby to zignorować.

Czy ktoś wie, dlaczego tak się dzieje i co należy zrobić?

Dziękuję za poświęcony czas, - Henry

Odpowiedz

28

Patrząc w tym głębiej, wygląda na to, że s3cmd odczytuje błędną sumę md5 z Amazon. Wygląda na to, że s3cmd pobiera swoją sumę z pola ETAG. Porównując rzeczywiste dane obiektu, który był PUT z obiektem, który był GET, zawartość jest identyczna i ten błąd można bezpiecznie zignorować.

+1

Dostałem tę wiadomość i pobrałem różnicę w stosunku do oryginalnego pliku, który przesłałem i są one zgodne, więc na pewno niektóre fałszywe alarmy z s3cmd –

+0

Można to teraz poprawić. Temat został otwarty 3 lata temu. – Kru

+1

Nie wygląda tak, jak jest. @ Kru Właśnie wypróbowałem to dla mojego pliku i to nie pasowało –

1

Widziałem raporty około godziny temu, że S3 jest obecnie o dokładnie ten problem, na przykład this tweet:

RT @drags: @ylastic S3 returning incorrect md5s to s3cmd as well. Never seen an md5 with a '-' in it, until AWS. #AWS #S3

Choć w AWS Status Page raportów nie problem, ja się spodziewać jest to przejściowy problem. Spróbuj ponownie wkrótce :-)

2

Jest to większy problem z synchronizacją s3cmd, ponieważ powoduje to ponowne pobieranie zsynchronizowanych plików. Aby rozwiązać ten problem, dodaj opcję --no-check-md5, która powoduje, że s3cmd sprawdza tylko rozmiary plików, aby określić zmienione pliki (jest to dobre dla moich celów, ale prawdopodobnie nie dla wszystkich, w zależności od aplikacji).

+0

widocznie to nie powstrzyma ostrzeżenia. – Kemal

+1

edytowanie pakietów serwisowych/S3/S3.py i usuwanie ostrzeżenia. :) – Kemal

7

ETag pliku w S3 nie pasuje do MD5, jeśli plik został przesłany jako "Multipart". Gdy plik jest oznaczony wieloczęściowy AWS będzie mieszał każdą część, łącz wyniki, a następnie mieszaj tę wartość.

Jeśli plik nie ma wielu części, wynikiem będzie mieszania mieszania z -1 dodane do końca. Spróbuj wyłączyć wieloczęściowe narzędzie, którego używasz do przesyłania plików do S3. W przypadku s3cmd, opcja jest --disable-multipart.

3

E-etykiety z "-" w nich są oczekiwane, jeśli plik został przesłany przy użyciu funkcji S3 Multipart Upload (zazwyczaj używany dla plików> 15 MB lub plików odczytanych ze standardowego wejścia). s3cmd 1.5.2 wie o tym i ignoruje takie ETagi. Jeśli twój s3cmd jest starszy niż 1.5.2, uaktualnij.

Powiązane problemy