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

Function testSSECMultipartEncryptedToSSECCopyObjectPart

functional_tests.go:10094–10277  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10092}
10093
10094func testSSECMultipartEncryptedToSSECCopyObjectPart() {
10095 // initialize logging params
10096 startTime := time.Now()
10097 testName := getFuncName()
10098 function := "CopyObjectPart(destination, source)"
10099 args := map[string]interface{}{}
10100
10101 client, err := NewClient(ClientConfig{})
10102 if err != nil {
10103 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
10104 return
10105 }
10106
10107 // Instantiate new core client object.
10108 c := minio.Core{Client: client}
10109
10110 // Generate a new random bucket name.
10111 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
10112
10113 // Make a new bucket.
10114 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
10115 if err != nil {
10116 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
10117 return
10118 }
10119 defer cleanupBucket(bucketName, client)
10120 // Make a buffer with 6MB of data
10121 buf := bytes.Repeat([]byte("abcdef"), 1024*1024)
10122
10123 // Save the data
10124 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
10125 password := "correct horse battery staple"
10126 srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
10127
10128 // Upload a 6MB object using multipart mechanism
10129 uploadID, err := c.NewMultipartUpload(context.Background(), bucketName, objectName, minio.PutObjectOptions{ServerSideEncryption: srcencryption})
10130 if err != nil {
10131 logError(testName, function, args, startTime, "", "NewMultipartUpload call failed", err)
10132 return
10133 }
10134
10135 var completeParts []minio.CompletePart
10136
10137 part, err := c.PutObjectPart(context.Background(), bucketName, objectName, uploadID, 1,
10138 bytes.NewReader(buf[:5*1024*1024]), 5*1024*1024,
10139 minio.PutObjectPartOptions{SSE: srcencryption},
10140 )
10141 if err != nil {
10142 logError(testName, function, args, startTime, "", "PutObjectPart call failed", err)
10143 return
10144 }
10145 completeParts = append(completeParts, minio.CompletePart{PartNumber: part.PartNumber, ETag: part.ETag})
10146
10147 part, err = c.PutObjectPart(context.Background(), bucketName, objectName, uploadID, 2,
10148 bytes.NewReader(buf[5*1024*1024:]), 1024*1024,
10149 minio.PutObjectPartOptions{SSE: srcencryption},
10150 )
10151 if err != nil {

Callers 1

mainFunction · 0.85

Calls 15

NewMultipartUploadMethod · 0.95
PutObjectPartMethod · 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