Führt AWS CLI bei der Synchronisierung mit S3 eine Datenintegritätsprüfung durch?

Führt AWS CLI bei der Synchronisierung mit S3 eine Datenintegritätsprüfung durch?

Ich habe mir überlegt, AWS CLI für Datenintegritätsprüfungen zu verwenden, um zu überprüfen, ob ein Backup von einem Linux-Dateiserver korrekt auf AWS s3 übertragen wurde. Ebenso möchte ich überprüfen, ob eine Datei beim Wiederherstellen aus einem Backup auf den Linux-Dateiserver auch korrekt übertragen wurde.

Ich habe mir den mit dem Objekt auf S3 gespeicherten Etag angesehen, da es sich anscheinend um eine MD5-Summe handelt. Wird die Datei allerdings bei großen Dateien als Multipart übertragen, ist der Etag nicht mehr gültig.

Aber bevor ich weitermache und versuche, jedes Mal eine MD5-Summe für das zu erstellen, was gerade mit S3 synchronisiert wurde: Ist das wirklich notwendig? Wenn rsync zwischen Linux-Dateisystemen über das Internet verwendet wird, ist es nicht üblich, eine MD5-Summe für die übertragenen Dateien zu erstellen, um sie zu überprüfen. Weil davon ausgegangen wird, dass rsync sich bereits darum gekümmert hat?

Daher frage ich mich, ob AWS CLI Sync die Datenintegritätsprüfung bereits für uns übernimmt?

Antwort1

Die kurze Antwort ist „Ja“. aws s3 syncEs aws s3 cpwird eine MD5-Prüfsumme berechnet und wenn diese nach Abschluss des Uploads nicht übereinstimmt, wird bis zu fünf Mal ein erneuter Versuch unternommen.

Die längere Antwort:

Die AWS CLI berechnet und füllt den Content-MD5-Header für Standard- und mehrteilige Uploads automatisch aus. Wenn die von S3 berechnete Prüfsumme nicht mit dem bereitgestellten Content-MD5 übereinstimmt, speichert S3 das Objekt nicht und gibt stattdessen eine Fehlermeldung an die AWS CLI zurück. Die AWS CLI versucht diesen Fehler bis zu fünfmal erneut, bevor sie aufgibt.

Wenn die Anfrage mit einem signiert ist, Signature Version 4wird die MD5-Prüfsumme nicht berechnet.

Beachten Sie, dass die AWS CLI einen Content-MD5-Header sowohl für die hochrangigen AWS S3-Befehle hinzufügt, die Uploads durchführen (aws s3 cp, aws s3 sync), als auch für die niedrigrangigen S3API-Befehle, einschließlich aws s3api put-object und aws s3api upload-part.

Referenz

Häufig gestellte Fragen zu AWS CLI S3

verwandte Informationen