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

Function testCopyObjectWithChecksums

functional_tests.go:9218–9345  ·  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

9216// Tests copy object with various checksum scenarios, tries to not repeat CopyObjectV2 test and
9217// instead just focus on Checksum.
9218func testCopyObjectWithChecksums() {
9219 startTime := time.Now()
9220 testName := getFuncName()
9221 function := "CopyObjectWithChecksums(destination, source)"
9222 args := map[string]interface{}{}
9223
9224 c, err := NewClient(ClientConfig{CredsV2: true})
9225 if err != nil {
9226 logError(testName, function, args, startTime, "", "MinIO v2 client object creation failed", err)
9227 return
9228 }
9229
9230 // Generate a new random bucket name.
9231 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
9232
9233 // Make a new bucket in 'us-east-1' (source bucket).
9234 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
9235 if err != nil {
9236 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
9237 return
9238 }
9239 defer cleanupBucket(bucketName, c)
9240
9241 // Make a new bucket in 'us-east-1' (destination bucket).
9242 err = c.MakeBucket(context.Background(), bucketName+"-copy", minio.MakeBucketOptions{Region: "us-east-1"})
9243 if err != nil {
9244 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
9245 return
9246 }
9247 defer cleanupBucket(bucketName+"-copy", c)
9248
9249 // Generate 33K of data.
9250 bufSize := dataFileMap["datafile-33-kB"]
9251 reader := getDataReader("datafile-33-kB")
9252 defer reader.Close()
9253
9254 // PutObject to upload the object to the bucket, this object will have a Crc64NVME checksum applied
9255 // by default since nothing was explicitly specified.
9256 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
9257 _, err = c.PutObject(context.Background(), bucketName, objectName, reader, int64(bufSize), minio.PutObjectOptions{ContentType: "binary/octet-stream"})
9258 if err != nil {
9259 logError(testName, function, args, startTime, "", "PutObject failed", err)
9260 return
9261 }
9262 // GetObject to obtain the eTag
9263 r, err := c.GetObject(context.Background(), bucketName, objectName, minio.GetObjectOptions{})
9264 if err != nil {
9265 logError(testName, function, args, startTime, "", "GetObject failed", err)
9266 return
9267 }
9268 objInfo, err := r.Stat()
9269 if err != nil {
9270 logError(testName, function, args, startTime, "", "Stat failed", err)
9271 return
9272 }
9273 r.Close()
9274
9275 // 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