Test Core CopyObjectPart implementation for unencrypted to SSE-S3 encrypted copy
()
| 11688 | |
| 11689 | // Test Core CopyObjectPart implementation for unencrypted to SSE-S3 encrypted copy |
| 11690 | func testSSES3EncryptedToSSES3CopyObjectPart() { |
| 11691 | // initialize logging params |
| 11692 | startTime := time.Now() |
| 11693 | testName := getFuncName() |
| 11694 | function := "CopyObjectPart(destination, source)" |
| 11695 | args := map[string]interface{}{} |
| 11696 | |
| 11697 | client, err := NewClient(ClientConfig{}) |
| 11698 | if err != nil { |
| 11699 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 11700 | return |
| 11701 | } |
| 11702 | |
| 11703 | // Instantiate new core client object. |
| 11704 | c := minio.Core{Client: client} |
| 11705 | |
| 11706 | // Generate a new random bucket name. |
| 11707 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 11708 | |
| 11709 | // Make a new bucket. |
| 11710 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 11711 | if err != nil { |
| 11712 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 11713 | return |
| 11714 | } |
| 11715 | defer cleanupBucket(bucketName, client) |
| 11716 | // Make a buffer with 5MB of data |
| 11717 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 11718 | |
| 11719 | // Save the data |
| 11720 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 11721 | srcEncryption := encrypt.NewSSE() |
| 11722 | opts := minio.PutObjectOptions{ |
| 11723 | UserMetadata: map[string]string{ |
| 11724 | "Content-Type": "binary/octet-stream", |
| 11725 | }, |
| 11726 | ServerSideEncryption: srcEncryption, |
| 11727 | } |
| 11728 | |
| 11729 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 11730 | if err != nil { |
| 11731 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 11732 | return |
| 11733 | } |
| 11734 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcEncryption}) |
| 11735 | if err != nil { |
| 11736 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 11737 | return |
| 11738 | } |
| 11739 | if st.Size != int64(len(buf)) { |
| 11740 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 11741 | return |
| 11742 | } |
| 11743 | |
| 11744 | destBucketName := bucketName |
| 11745 | destObjectName := objectName + "-dest" |
| 11746 | dstencryption := encrypt.NewSSE() |
| 11747 |
no test coverage detected