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

Function testSSECEncryptedToSSECCopyObjectPart

functional_tests.go:10280–10443  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation

()

Source from the content-addressed store, hash-verified

10278
10279// Test Core CopyObjectPart implementation
10280func testSSECEncryptedToSSECCopyObjectPart() {
10281 // initialize logging params
10282 startTime := time.Now()
10283 testName := getFuncName()
10284 function := "CopyObjectPart(destination, source)"
10285 args := map[string]interface{}{}
10286
10287 client, err := NewClient(ClientConfig{})
10288 if err != nil {
10289 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
10290 return
10291 }
10292
10293 // Instantiate new core client object.
10294 c := minio.Core{Client: client}
10295
10296 // Generate a new random bucket name.
10297 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
10298
10299 // Make a new bucket.
10300 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
10301 if err != nil {
10302 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
10303 return
10304 }
10305 defer cleanupBucket(bucketName, client)
10306 // Make a buffer with 5MB of data
10307 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
10308
10309 // Save the data
10310 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
10311 password := "correct horse battery staple"
10312 srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
10313 putmetadata := map[string]string{
10314 "Content-Type": "binary/octet-stream",
10315 }
10316 opts := minio.PutObjectOptions{
10317 UserMetadata: putmetadata,
10318 ServerSideEncryption: srcencryption,
10319 }
10320 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
10321 if err != nil {
10322 logError(testName, function, args, startTime, "", "PutObject call failed", err)
10323 return
10324 }
10325
10326 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption})
10327 if err != nil {
10328 logError(testName, function, args, startTime, "", "StatObject call failed", err)
10329 return
10330 }
10331
10332 if st.Size != int64(len(buf)) {
10333 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
10334 return
10335 }
10336
10337 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