()
| 10196 | } |
| 10197 | |
| 10198 | func testSSECMultipartEncryptedToSSECCopyObjectPart() { |
| 10199 | // initialize logging params |
| 10200 | startTime := time.Now() |
| 10201 | testName := getFuncName() |
| 10202 | function := "CopyObjectPart(destination, source)" |
| 10203 | args := map[string]interface{}{} |
| 10204 | |
| 10205 | client, err := NewClient(ClientConfig{}) |
| 10206 | if err != nil { |
| 10207 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 10208 | return |
| 10209 | } |
| 10210 | |
| 10211 | // Instantiate new core client object. |
| 10212 | c := minio.Core{Client: client} |
| 10213 | |
| 10214 | // Generate a new random bucket name. |
| 10215 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 10216 | |
| 10217 | // Make a new bucket. |
| 10218 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 10219 | if err != nil { |
| 10220 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 10221 | return |
| 10222 | } |
| 10223 | defer cleanupBucket(bucketName, client) |
| 10224 | // Make a buffer with 6MB of data |
| 10225 | buf := bytes.Repeat([]byte("abcdef"), 1024*1024) |
| 10226 | |
| 10227 | // Save the data |
| 10228 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 10229 | password := "correct horse battery staple" |
| 10230 | srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName)) |
| 10231 | |
| 10232 | // Upload a 6MB object using multipart mechanism |
| 10233 | uploadID, err := c.NewMultipartUpload(context.Background(), bucketName, objectName, minio.PutObjectOptions{ServerSideEncryption: srcencryption}) |
| 10234 | if err != nil { |
| 10235 | logError(testName, function, args, startTime, "", "NewMultipartUpload call failed", err) |
| 10236 | return |
| 10237 | } |
| 10238 | |
| 10239 | var completeParts []minio.CompletePart |
| 10240 | |
| 10241 | part, err := c.PutObjectPart(context.Background(), bucketName, objectName, uploadID, 1, |
| 10242 | bytes.NewReader(buf[:5*1024*1024]), 5*1024*1024, |
| 10243 | minio.PutObjectPartOptions{SSE: srcencryption}, |
| 10244 | ) |
| 10245 | if err != nil { |
| 10246 | logError(testName, function, args, startTime, "", "PutObjectPart call failed", err) |
| 10247 | return |
| 10248 | } |
| 10249 | completeParts = append(completeParts, minio.CompletePart{PartNumber: part.PartNumber, ETag: part.ETag}) |
| 10250 | |
| 10251 | part, err = c.PutObjectPart(context.Background(), bucketName, objectName, uploadID, 2, |
| 10252 | bytes.NewReader(buf[5*1024*1024:]), 1024*1024, |
| 10253 | minio.PutObjectPartOptions{SSE: srcencryption}, |
| 10254 | ) |
| 10255 | if err != nil { |
no test coverage detected