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

Function testSSES3EncryptedToSSES3CopyObjectPart

functional_tests.go:11690–11850  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation for unencrypted to SSE-S3 encrypted copy

()

Source from the content-addressed store, hash-verified

11688
11689// Test Core CopyObjectPart implementation for unencrypted to SSE-S3 encrypted copy
11690func testSSES3EncryptedToSSES3CopyObjectPart() {
11691 // initialize logging params
11692 startTime := time.Now()
11693 testName := getFuncName()
11694 function := "CopyObjectPart(destination, source)"
11695 args := map[string]interface{}{}
11696
11697 client, err := NewClient(ClientConfig{})
11698 if err != nil {
11699 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
11700 return
11701 }
11702
11703 // Instantiate new core client object.
11704 c := minio.Core{Client: client}
11705
11706 // Generate a new random bucket name.
11707 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
11708
11709 // Make a new bucket.
11710 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
11711 if err != nil {
11712 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
11713 return
11714 }
11715 defer cleanupBucket(bucketName, client)
11716 // Make a buffer with 5MB of data
11717 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
11718
11719 // Save the data
11720 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
11721 srcEncryption := encrypt.NewSSE()
11722 opts := minio.PutObjectOptions{
11723 UserMetadata: map[string]string{
11724 "Content-Type": "binary/octet-stream",
11725 },
11726 ServerSideEncryption: srcEncryption,
11727 }
11728
11729 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
11730 if err != nil {
11731 logError(testName, function, args, startTime, "", "PutObject call failed", err)
11732 return
11733 }
11734 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcEncryption})
11735 if err != nil {
11736 logError(testName, function, args, startTime, "", "StatObject call failed", err)
11737 return
11738 }
11739 if st.Size != int64(len(buf)) {
11740 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
11741 return
11742 }
11743
11744 destBucketName := bucketName
11745 destObjectName := objectName + "-dest"
11746 dstencryption := encrypt.NewSSE()
11747

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