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

Function testSSECEncryptedToUnencryptedCopyPart

functional_tests.go:10446–10608  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation for SSEC encrypted to unencrypted copy

()

Source from the content-addressed store, hash-verified

10444
10445// Test Core CopyObjectPart implementation for SSEC encrypted to unencrypted copy
10446func testSSECEncryptedToUnencryptedCopyPart() {
10447 // initialize logging params
10448 startTime := time.Now()
10449 testName := getFuncName()
10450 function := "CopyObjectPart(destination, source)"
10451 args := map[string]interface{}{}
10452
10453 client, err := NewClient(ClientConfig{})
10454 if err != nil {
10455 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
10456 return
10457 }
10458
10459 // Instantiate new core client object.
10460 c := minio.Core{Client: client}
10461
10462 // Generate a new random bucket name.
10463 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
10464
10465 // Make a new bucket.
10466 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
10467 if err != nil {
10468 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
10469 return
10470 }
10471 defer cleanupBucket(bucketName, client)
10472 // Make a buffer with 5MB of data
10473 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
10474
10475 // Save the data
10476 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
10477 password := "correct horse battery staple"
10478 srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
10479
10480 opts := minio.PutObjectOptions{
10481 UserMetadata: map[string]string{
10482 "Content-Type": "binary/octet-stream",
10483 },
10484 ServerSideEncryption: srcencryption,
10485 }
10486 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
10487 if err != nil {
10488 logError(testName, function, args, startTime, "", "PutObject call failed", err)
10489 return
10490 }
10491
10492 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption})
10493 if err != nil {
10494 logError(testName, function, args, startTime, "", "StatObject call failed", err)
10495 return
10496 }
10497
10498 if st.Size != int64(len(buf)) {
10499 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
10500 return
10501 }
10502
10503 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