Test Core CopyObjectPart implementation for unencrypted to unencrypted copy
()
| 11424 | |
| 11425 | // Test Core CopyObjectPart implementation for unencrypted to unencrypted copy |
| 11426 | func testSSES3EncryptedToUnencryptedCopyPart() { |
| 11427 | // initialize logging params |
| 11428 | startTime := time.Now() |
| 11429 | testName := getFuncName() |
| 11430 | function := "CopyObjectPart(destination, source)" |
| 11431 | args := map[string]interface{}{} |
| 11432 | |
| 11433 | client, err := NewClient(ClientConfig{}) |
| 11434 | if err != nil { |
| 11435 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 11436 | return |
| 11437 | } |
| 11438 | |
| 11439 | // Instantiate new core client object. |
| 11440 | c := minio.Core{Client: client} |
| 11441 | |
| 11442 | // Generate a new random bucket name. |
| 11443 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 11444 | |
| 11445 | // Make a new bucket. |
| 11446 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 11447 | if err != nil { |
| 11448 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 11449 | return |
| 11450 | } |
| 11451 | defer cleanupBucket(bucketName, client) |
| 11452 | // Make a buffer with 5MB of data |
| 11453 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 11454 | |
| 11455 | // Save the data |
| 11456 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 11457 | srcEncryption := encrypt.NewSSE() |
| 11458 | opts := minio.PutObjectOptions{ |
| 11459 | UserMetadata: map[string]string{ |
| 11460 | "Content-Type": "binary/octet-stream", |
| 11461 | }, |
| 11462 | ServerSideEncryption: srcEncryption, |
| 11463 | } |
| 11464 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 11465 | if err != nil { |
| 11466 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 11467 | return |
| 11468 | } |
| 11469 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcEncryption}) |
| 11470 | if err != nil { |
| 11471 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 11472 | return |
| 11473 | } |
| 11474 | |
| 11475 | if st.Size != int64(len(buf)) { |
| 11476 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 11477 | return |
| 11478 | } |
| 11479 | |
| 11480 | destBucketName := bucketName |
| 11481 | destObjectName := objectName + "-dest" |
| 11482 | |
| 11483 | uploadID, err := c.NewMultipartUpload(context.Background(), destBucketName, destObjectName, minio.PutObjectOptions{}) |
no test coverage detected