Test Core CopyObjectPart implementation for SSE-S3 to SSEC encryption copy part
()
| 11260 | |
| 11261 | // Test Core CopyObjectPart implementation for SSE-S3 to SSEC encryption copy part |
| 11262 | func 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" |
no test coverage detected