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

Function testSSECEncryptedToSSES3CopyObjectPart

functional_tests.go:10715–10880  ·  view source on GitHub ↗

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

()

Source from the content-addressed store, hash-verified

10713
10714// Test Core CopyObjectPart implementation for SSEC encrypted to SSE-S3 encrypted copy
10715func testSSECEncryptedToSSES3CopyObjectPart() {
10716 // initialize logging params
10717 startTime := time.Now()
10718 testName := getFuncName()
10719 function := "CopyObjectPart(destination, source)"
10720 args := map[string]interface{}{}
10721
10722 client, err := NewClient(ClientConfig{})
10723 if err != nil {
10724 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
10725 return
10726 }
10727
10728 // Instantiate new core client object.
10729 c := minio.Core{Client: client}
10730
10731 // Generate a new random bucket name.
10732 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
10733
10734 // Make a new bucket.
10735 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
10736 if err != nil {
10737 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
10738 return
10739 }
10740 defer cleanupBucket(bucketName, client)
10741 // Make a buffer with 5MB of data
10742 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
10743
10744 // Save the data
10745 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
10746 password := "correct horse battery staple"
10747 srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
10748 putmetadata := map[string]string{
10749 "Content-Type": "binary/octet-stream",
10750 }
10751 opts := minio.PutObjectOptions{
10752 UserMetadata: putmetadata,
10753 ServerSideEncryption: srcencryption,
10754 }
10755
10756 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
10757 if err != nil {
10758 logError(testName, function, args, startTime, "", "PutObject call failed", err)
10759 return
10760 }
10761
10762 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption})
10763 if err != nil {
10764 logError(testName, function, args, startTime, "", "StatObject call failed", err)
10765 return
10766 }
10767
10768 if st.Size != int64(len(buf)) {
10769 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
10770 return
10771 }
10772

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
SSECopyFunction · 0.92
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85

Tested by

no test coverage detected