()
| 10092 | } |
| 10093 | |
| 10094 | func testSSECMultipartEncryptedToSSECCopyObjectPart() { |
| 10095 | // initialize logging params |
| 10096 | startTime := time.Now() |
| 10097 | testName := getFuncName() |
| 10098 | function := "CopyObjectPart(destination, source)" |
| 10099 | args := map[string]interface{}{} |
| 10100 | |
| 10101 | client, err := NewClient(ClientConfig{}) |
| 10102 | if err != nil { |
| 10103 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 10104 | return |
| 10105 | } |
| 10106 | |
| 10107 | // Instantiate new core client object. |
| 10108 | c := minio.Core{Client: client} |
| 10109 | |
| 10110 | // Generate a new random bucket name. |
| 10111 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 10112 | |
| 10113 | // Make a new bucket. |
| 10114 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 10115 | if err != nil { |
| 10116 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 10117 | return |
| 10118 | } |
| 10119 | defer cleanupBucket(bucketName, client) |
| 10120 | // Make a buffer with 6MB of data |
| 10121 | buf := bytes.Repeat([]byte("abcdef"), 1024*1024) |
| 10122 | |
| 10123 | // Save the data |
| 10124 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 10125 | password := "correct horse battery staple" |
| 10126 | srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName)) |
| 10127 | |
| 10128 | // Upload a 6MB object using multipart mechanism |
| 10129 | uploadID, err := c.NewMultipartUpload(context.Background(), bucketName, objectName, minio.PutObjectOptions{ServerSideEncryption: srcencryption}) |
| 10130 | if err != nil { |
| 10131 | logError(testName, function, args, startTime, "", "NewMultipartUpload call failed", err) |
| 10132 | return |
| 10133 | } |
| 10134 | |
| 10135 | var completeParts []minio.CompletePart |
| 10136 | |
| 10137 | part, err := c.PutObjectPart(context.Background(), bucketName, objectName, uploadID, 1, |
| 10138 | bytes.NewReader(buf[:5*1024*1024]), 5*1024*1024, |
| 10139 | minio.PutObjectPartOptions{SSE: srcencryption}, |
| 10140 | ) |
| 10141 | if err != nil { |
| 10142 | logError(testName, function, args, startTime, "", "PutObjectPart call failed", err) |
| 10143 | return |
| 10144 | } |
| 10145 | completeParts = append(completeParts, minio.CompletePart{PartNumber: part.PartNumber, ETag: part.ETag}) |
| 10146 | |
| 10147 | part, err = c.PutObjectPart(context.Background(), bucketName, objectName, uploadID, 2, |
| 10148 | bytes.NewReader(buf[5*1024*1024:]), 1024*1024, |
| 10149 | minio.PutObjectPartOptions{SSE: srcencryption}, |
| 10150 | ) |
| 10151 | if err != nil { |
no test coverage detected