MCPcopy
hub / github.com/minio/minio-go / testCopyObjectWithChecksums

Function testCopyObjectWithChecksums

functional_tests.go:9114–9241  ·  view source on GitHub ↗

Tests copy object with various checksum scenarios, tries to not repeat CopyObjectV2 test and instead just focus on Checksum.

()

Source from the content-addressed store, hash-verified

9112// Tests copy object with various checksum scenarios, tries to not repeat CopyObjectV2 test and
9113// instead just focus on Checksum.
9114func testCopyObjectWithChecksums() {
9115 startTime := time.Now()
9116 testName := getFuncName()
9117 function := "CopyObjectWithChecksums(destination, source)"
9118 args := map[string]interface{}{}
9119
9120 c, err := NewClient(ClientConfig{CredsV2: true})
9121 if err != nil {
9122 logError(testName, function, args, startTime, "", "MinIO v2 client object creation failed", err)
9123 return
9124 }
9125
9126 // Generate a new random bucket name.
9127 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
9128
9129 // Make a new bucket in 'us-east-1' (source bucket).
9130 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
9131 if err != nil {
9132 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
9133 return
9134 }
9135 defer cleanupBucket(bucketName, c)
9136
9137 // Make a new bucket in 'us-east-1' (destination bucket).
9138 err = c.MakeBucket(context.Background(), bucketName+"-copy", minio.MakeBucketOptions{Region: "us-east-1"})
9139 if err != nil {
9140 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
9141 return
9142 }
9143 defer cleanupBucket(bucketName+"-copy", c)
9144
9145 // Generate 33K of data.
9146 bufSize := dataFileMap["datafile-33-kB"]
9147 reader := getDataReader("datafile-33-kB")
9148 defer reader.Close()
9149
9150 // PutObject to upload the object to the bucket, this object will have a Crc64NVME checksum applied
9151 // by default since nothing was explicitly specified.
9152 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
9153 _, err = c.PutObject(context.Background(), bucketName, objectName, reader, int64(bufSize), minio.PutObjectOptions{ContentType: "binary/octet-stream"})
9154 if err != nil {
9155 logError(testName, function, args, startTime, "", "PutObject failed", err)
9156 return
9157 }
9158 // GetObject to obtain the eTag
9159 r, err := c.GetObject(context.Background(), bucketName, objectName, minio.GetObjectOptions{})
9160 if err != nil {
9161 logError(testName, function, args, startTime, "", "GetObject failed", err)
9162 return
9163 }
9164 objInfo, err := r.Stat()
9165 if err != nil {
9166 logError(testName, function, args, startTime, "", "Stat failed", err)
9167 return
9168 }
9169 r.Close()
9170
9171 // Copy source options

Callers 1

mainFunction · 0.85

Calls 15

MakeBucketMethod · 0.95
PutObjectMethod · 0.95
GetObjectMethod · 0.95
CopyObjectMethod · 0.95
StatObjectMethod · 0.95
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
getDataReaderFunction · 0.85
cmpChecksumFunction · 0.85
logSuccessFunction · 0.85

Tested by

no test coverage detected