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

Function testSSECEncryptedToUnencryptedCopyPart

functional_tests.go:10550–10712  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation for SSEC encrypted to unencrypted copy

()

Source from the content-addressed store, hash-verified

10548
10549// Test Core CopyObjectPart implementation for SSEC encrypted to unencrypted copy
10550func testSSECEncryptedToUnencryptedCopyPart() {
10551 // initialize logging params
10552 startTime := time.Now()
10553 testName := getFuncName()
10554 function := "CopyObjectPart(destination, source)"
10555 args := map[string]interface{}{}
10556
10557 client, err := NewClient(ClientConfig{})
10558 if err != nil {
10559 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
10560 return
10561 }
10562
10563 // Instantiate new core client object.
10564 c := minio.Core{Client: client}
10565
10566 // Generate a new random bucket name.
10567 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
10568
10569 // Make a new bucket.
10570 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
10571 if err != nil {
10572 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
10573 return
10574 }
10575 defer cleanupBucket(bucketName, client)
10576 // Make a buffer with 5MB of data
10577 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
10578
10579 // Save the data
10580 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
10581 password := "correct horse battery staple"
10582 srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
10583
10584 opts := minio.PutObjectOptions{
10585 UserMetadata: map[string]string{
10586 "Content-Type": "binary/octet-stream",
10587 },
10588 ServerSideEncryption: srcencryption,
10589 }
10590 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
10591 if err != nil {
10592 logError(testName, function, args, startTime, "", "PutObject call failed", err)
10593 return
10594 }
10595
10596 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption})
10597 if err != nil {
10598 logError(testName, function, args, startTime, "", "StatObject call failed", err)
10599 return
10600 }
10601
10602 if st.Size != int64(len(buf)) {
10603 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
10604 return
10605 }
10606
10607 destBucketName := bucketName

Callers 1

mainFunction · 0.85

Calls 15

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

Tested by

no test coverage detected