mirror of
https://github.com/minio/minio.git
synced 2025-05-21 17:43:48 -04:00
fix: s3-check-md5 to not panic for incomplete md5
This commit is contained in:
parent
56a61bab56
commit
befbf48563
@ -127,7 +127,7 @@ func main() {
|
|||||||
// List all objects from a bucket-name with a matching prefix.
|
// List all objects from a bucket-name with a matching prefix.
|
||||||
for object := range s3Client.ListObjects(context.Background(), bucket, opts) {
|
for object := range s3Client.ListObjects(context.Background(), bucket, opts) {
|
||||||
if object.Err != nil {
|
if object.Err != nil {
|
||||||
log.Fatalln("LIST error:", object.Err)
|
log.Println("LIST error:", object.Err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if object.IsDeleteMarker {
|
if object.IsDeleteMarker {
|
||||||
@ -162,6 +162,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var partsMD5Sum [][]byte
|
var partsMD5Sum [][]byte
|
||||||
|
var failedMD5 bool
|
||||||
for p := 1; p <= parts; p++ {
|
for p := 1; p <= parts; p++ {
|
||||||
opts := minio.GetObjectOptions{
|
opts := minio.GetObjectOptions{
|
||||||
VersionID: object.VersionID,
|
VersionID: object.VersionID,
|
||||||
@ -170,16 +171,23 @@ func main() {
|
|||||||
obj, err := s3Client.GetObject(context.Background(), bucket, object.Key, opts)
|
obj, err := s3Client.GetObject(context.Background(), bucket, object.Key, opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("GET", bucket, object.Key, object.VersionID, "=>", err)
|
log.Println("GET", bucket, object.Key, object.VersionID, "=>", err)
|
||||||
continue
|
failedMD5 = true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
h := md5.New()
|
h := md5.New()
|
||||||
if _, err := io.Copy(h, obj); err != nil {
|
if _, err := io.Copy(h, obj); err != nil {
|
||||||
log.Println("MD5 calculation error:", bucket, object.Key, object.VersionID, "=>", err)
|
log.Println("MD5 calculation error:", bucket, object.Key, object.VersionID, "=>", err)
|
||||||
continue
|
failedMD5 = true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
partsMD5Sum = append(partsMD5Sum, h.Sum(nil))
|
partsMD5Sum = append(partsMD5Sum, h.Sum(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if failedMD5 {
|
||||||
|
log.Println("CORRUPTED object:", bucket, object.Key, object.VersionID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
corrupted := false
|
corrupted := false
|
||||||
if !multipart {
|
if !multipart {
|
||||||
md5sum := fmt.Sprintf("%x", partsMD5Sum[0])
|
md5sum := fmt.Sprintf("%x", partsMD5Sum[0])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user