Test Core CopyObjectPart implementation
()
| 10278 | |
| 10279 | // Test Core CopyObjectPart implementation |
| 10280 | func testSSECEncryptedToSSECCopyObjectPart() { |
| 10281 | // initialize logging params |
| 10282 | startTime := time.Now() |
| 10283 | testName := getFuncName() |
| 10284 | function := "CopyObjectPart(destination, source)" |
| 10285 | args := map[string]interface{}{} |
| 10286 | |
| 10287 | client, err := NewClient(ClientConfig{}) |
| 10288 | if err != nil { |
| 10289 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 10290 | return |
| 10291 | } |
| 10292 | |
| 10293 | // Instantiate new core client object. |
| 10294 | c := minio.Core{Client: client} |
| 10295 | |
| 10296 | // Generate a new random bucket name. |
| 10297 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 10298 | |
| 10299 | // Make a new bucket. |
| 10300 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 10301 | if err != nil { |
| 10302 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 10303 | return |
| 10304 | } |
| 10305 | defer cleanupBucket(bucketName, client) |
| 10306 | // Make a buffer with 5MB of data |
| 10307 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 10308 | |
| 10309 | // Save the data |
| 10310 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 10311 | password := "correct horse battery staple" |
| 10312 | srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName)) |
| 10313 | putmetadata := map[string]string{ |
| 10314 | "Content-Type": "binary/octet-stream", |
| 10315 | } |
| 10316 | opts := minio.PutObjectOptions{ |
| 10317 | UserMetadata: putmetadata, |
| 10318 | ServerSideEncryption: srcencryption, |
| 10319 | } |
| 10320 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 10321 | if err != nil { |
| 10322 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 10323 | return |
| 10324 | } |
| 10325 | |
| 10326 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption}) |
| 10327 | if err != nil { |
| 10328 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 10329 | return |
| 10330 | } |
| 10331 | |
| 10332 | if st.Size != int64(len(buf)) { |
| 10333 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 10334 | return |
| 10335 | } |
| 10336 | |
| 10337 | destBucketName := bucketName |
no test coverage detected