Test Core CopyObjectPart implementation for SSEC encrypted to unencrypted copy
()
| 10548 | |
| 10549 | // Test Core CopyObjectPart implementation for SSEC encrypted to unencrypted copy |
| 10550 | func testSSECEncryptedToUnencryptedCopyPart() { |
| 10551 | // initialize logging params |
| 10552 | startTime := time.Now() |
| 10553 | testName := getFuncName() |
| 10554 | function := "CopyObjectPart(destination, source)" |
| 10555 | args := map[string]interface{}{} |
| 10556 | |
| 10557 | client, err := NewClient(ClientConfig{}) |
| 10558 | if err != nil { |
| 10559 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 10560 | return |
| 10561 | } |
| 10562 | |
| 10563 | // Instantiate new core client object. |
| 10564 | c := minio.Core{Client: client} |
| 10565 | |
| 10566 | // Generate a new random bucket name. |
| 10567 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 10568 | |
| 10569 | // Make a new bucket. |
| 10570 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 10571 | if err != nil { |
| 10572 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 10573 | return |
| 10574 | } |
| 10575 | defer cleanupBucket(bucketName, client) |
| 10576 | // Make a buffer with 5MB of data |
| 10577 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 10578 | |
| 10579 | // Save the data |
| 10580 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 10581 | password := "correct horse battery staple" |
| 10582 | srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName)) |
| 10583 | |
| 10584 | opts := minio.PutObjectOptions{ |
| 10585 | UserMetadata: map[string]string{ |
| 10586 | "Content-Type": "binary/octet-stream", |
| 10587 | }, |
| 10588 | ServerSideEncryption: srcencryption, |
| 10589 | } |
| 10590 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 10591 | if err != nil { |
| 10592 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 10593 | return |
| 10594 | } |
| 10595 | |
| 10596 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption}) |
| 10597 | if err != nil { |
| 10598 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 10599 | return |
| 10600 | } |
| 10601 | |
| 10602 | if st.Size != int64(len(buf)) { |
| 10603 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 10604 | return |
| 10605 | } |
| 10606 | |
| 10607 | destBucketName := bucketName |
no test coverage detected