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

Function testSSES3EncryptedToSSECCopyObjectPart

functional_tests.go:11262–11423  ·  view source on GitHub ↗

Test Core CopyObjectPart implementation for SSE-S3 to SSEC encryption copy part

()

Source from the content-addressed store, hash-verified

11260
11261// Test Core CopyObjectPart implementation for SSE-S3 to SSEC encryption copy part
11262func testSSES3EncryptedToSSECCopyObjectPart() {
11263 // initialize logging params
11264 startTime := time.Now()
11265 testName := getFuncName()
11266 function := "CopyObjectPart(destination, source)"
11267 args := map[string]interface{}{}
11268
11269 client, err := NewClient(ClientConfig{})
11270 if err != nil {
11271 logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err)
11272 return
11273 }
11274
11275 // Instantiate new core client object.
11276 c := minio.Core{Client: client}
11277
11278 // Generate a new random bucket name.
11279 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test")
11280
11281 // Make a new bucket.
11282 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
11283 if err != nil {
11284 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
11285 return
11286 }
11287 defer cleanupBucket(bucketName, client)
11288 // Make a buffer with 5MB of data
11289 buf := bytes.Repeat([]byte("abcde"), 1024*1024)
11290
11291 // Save the data
11292 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
11293 password := "correct horse battery staple"
11294 srcEncryption := encrypt.NewSSE()
11295 opts := minio.PutObjectOptions{
11296 UserMetadata: map[string]string{
11297 "Content-Type": "binary/octet-stream",
11298 },
11299 ServerSideEncryption: srcEncryption,
11300 }
11301 uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts)
11302 if err != nil {
11303 logError(testName, function, args, startTime, "", "PutObject call failed", err)
11304 return
11305 }
11306
11307 st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcEncryption})
11308 if err != nil {
11309 logError(testName, function, args, startTime, "", "StatObject call failed", err)
11310 return
11311 }
11312
11313 if st.Size != int64(len(buf)) {
11314 logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err)
11315 return
11316 }
11317
11318 destBucketName := bucketName
11319 destObjectName := objectName + "-dest"

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