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

Function testSSES3EncryptedToUnencryptedCopyPart

functional_tests.go:11426–11583  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation for unencrypted to unencrypted copy

()

Source from the content-addressed store, hash-verified

11424
11425// Test Core CopyObjectPart implementation for unencrypted to unencrypted copy
11426func testSSES3EncryptedToUnencryptedCopyPart() {
11427 // initialize logging params
11428 startTime := time.Now()
11429 testName := getFuncName()
11430 function := "CopyObjectPart(destination, source)"
11431 args := map[string]interface{}{}
11432
11433 client, err := NewClient(ClientConfig{})
11434 if err != nil {
11435 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
11436 return
11437 }
11438
11439 // Instantiate new core client object.
11440 c := minio.Core{Client: client}
11441
11442 // Generate a new random bucket name.
11443 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
11444
11445 // Make a new bucket.
11446 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
11447 if err != nil {
11448 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
11449 return
11450 }
11451 defer cleanupBucket(bucketName, client)
11452 // Make a buffer with 5MB of data
11453 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
11454
11455 // Save the data
11456 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
11457 srcEncryption := encrypt.NewSSE()
11458 opts := minio.PutObjectOptions{
11459 UserMetadata: map[string]string{
11460 "Content-Type": "binary/octet-stream",
11461 },
11462 ServerSideEncryption: srcEncryption,
11463 }
11464 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
11465 if err != nil {
11466 logError(testName, function, args, startTime, "", "PutObject call failed", err)
11467 return
11468 }
11469 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcEncryption})
11470 if err != nil {
11471 logError(testName, function, args, startTime, "", "StatObject call failed", err)
11472 return
11473 }
11474
11475 if st.Size != int64(len(buf)) {
11476 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
11477 return
11478 }
11479
11480 destBucketName := bucketName
11481 destObjectName := objectName + "-dest"
11482
11483 uploadID, err := c.NewMultipartUpload(context.Background(), destBucketName, destObjectName, minio.PutObjectOptions{})

Callers 1

mainFunction · 0.85

Calls 15

PutObjectMethod · 0.95
NewMultipartUploadMethod · 0.95
CopyObjectPartMethod · 0.95
SetRangeMethod · 0.95
GetObjectMethod · 0.95
NewSSEFunction · 0.92
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
logSuccessFunction · 0.85

Tested by

no test coverage detected