Test Core CopyObjectPart implementation
()
| 10382 | |
| 10383 | // Test Core CopyObjectPart implementation |
| 10384 | func testSSECEncryptedToSSECCopyObjectPart() { |
| 10385 | // initialize logging params |
| 10386 | startTime := time.Now() |
| 10387 | testName := getFuncName() |
| 10388 | function := "CopyObjectPart(destination, source)" |
| 10389 | args := map[string]interface{}{} |
| 10390 | |
| 10391 | client, err := NewClient(ClientConfig{}) |
| 10392 | if err != nil { |
| 10393 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 10394 | return |
| 10395 | } |
| 10396 | |
| 10397 | // Instantiate new core client object. |
| 10398 | c := minio.Core{Client: client} |
| 10399 | |
| 10400 | // Generate a new random bucket name. |
| 10401 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 10402 | |
| 10403 | // Make a new bucket. |
| 10404 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 10405 | if err != nil { |
| 10406 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 10407 | return |
| 10408 | } |
| 10409 | defer cleanupBucket(bucketName, client) |
| 10410 | // Make a buffer with 5MB of data |
| 10411 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 10412 | |
| 10413 | // Save the data |
| 10414 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 10415 | password := "correct horse battery staple" |
| 10416 | srcencryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName)) |
| 10417 | putmetadata := map[string]string{ |
| 10418 | "Content-Type": "binary/octet-stream", |
| 10419 | } |
| 10420 | opts := minio.PutObjectOptions{ |
| 10421 | UserMetadata: putmetadata, |
| 10422 | ServerSideEncryption: srcencryption, |
| 10423 | } |
| 10424 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 10425 | if err != nil { |
| 10426 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 10427 | return |
| 10428 | } |
| 10429 | |
| 10430 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{ServerSideEncryption: srcencryption}) |
| 10431 | if err != nil { |
| 10432 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 10433 | return |
| 10434 | } |
| 10435 | |
| 10436 | if st.Size != int64(len(buf)) { |
| 10437 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 10438 | return |
| 10439 | } |
| 10440 | |
| 10441 | destBucketName := bucketName |
no test coverage detected