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

Function testSSECEncryptedToSSECCopyObjectPart

functional_tests.go:10384–10547  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation

()

Source from the content-addressed store, hash-verified

10382
10383// Test Core CopyObjectPart implementation
10384func testSSECEncryptedToSSECCopyObjectPart() {
10385 // initialize logging params
10386 startTime := time.Now()
10387 testName := getFuncName()
10388 function := "CopyObjectPart(destination, source)"
10389 args := map[string]interface{}{}
10390
10391 client, err := NewClient(ClientConfig{})
10392 if err != nil {
10393 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
10394 return
10395 }
10396
10397 // Instantiate new core client object.
10398 c := minio.Core{Client: client}
10399
10400 // Generate a new random bucket name.
10401 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
10402
10403 // Make a new bucket.
10404 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
10405 if err != nil {
10406 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
10407 return
10408 }
10409 defer cleanupBucket(bucketName, client)
10410 // Make a buffer with 5MB of data
10411 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
10412
10413 // Save the data
10414 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
10415 password := "correct horse battery staple"
10416 srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
10417 putmetadata := map[string]string{
10418 "Content-Type": "binary/octet-stream",
10419 }
10420 opts := minio.PutObjectOptions{
10421 UserMetadata: putmetadata,
10422 ServerSideEncryption: srcencryption,
10423 }
10424 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
10425 if err != nil {
10426 logError(testName, function, args, startTime, "", "PutObject call failed", err)
10427 return
10428 }
10429
10430 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption})
10431 if err != nil {
10432 logError(testName, function, args, startTime, "", "StatObject call failed", err)
10433 return
10434 }
10435
10436 if st.Size != int64(len(buf)) {
10437 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
10438 return
10439 }
10440
10441 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