Test Core CopyObjectPart implementation for unencrypted to SSE-S3 encrypted copy
()
| 11203 | |
| 11204 | // Test Core CopyObjectPart implementation for unencrypted to SSE-S3 encrypted copy |
| 11205 | func testUnencryptedToSSES3CopyObjectPart() { |
| 11206 | // initialize logging params |
| 11207 | startTime := time.Now() |
| 11208 | testName := getFuncName() |
| 11209 | function := "CopyObjectPart(destination, source)" |
| 11210 | args := map[string]interface{}{} |
| 11211 | |
| 11212 | client, err := NewClient(ClientConfig{}) |
| 11213 | if err != nil { |
| 11214 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 11215 | return |
| 11216 | } |
| 11217 | |
| 11218 | // Instantiate new core client object. |
| 11219 | c := minio.Core{Client: client} |
| 11220 | |
| 11221 | // Generate a new random bucket name. |
| 11222 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 11223 | |
| 11224 | // Make a new bucket. |
| 11225 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 11226 | if err != nil { |
| 11227 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 11228 | return |
| 11229 | } |
| 11230 | defer cleanupBucket(bucketName, client) |
| 11231 | // Make a buffer with 5MB of data |
| 11232 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 11233 | |
| 11234 | // Save the data |
| 11235 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 11236 | opts := minio.PutObjectOptions{ |
| 11237 | UserMetadata: map[string]string{ |
| 11238 | "Content-Type": "binary/octet-stream", |
| 11239 | }, |
| 11240 | } |
| 11241 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 11242 | if err != nil { |
| 11243 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 11244 | return |
| 11245 | } |
| 11246 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{}) |
| 11247 | if err != nil { |
| 11248 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 11249 | return |
| 11250 | } |
| 11251 | |
| 11252 | if st.Size != int64(len(buf)) { |
| 11253 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 11254 | return |
| 11255 | } |
| 11256 | |
| 11257 | destBucketName := bucketName |
| 11258 | destObjectName := objectName + "-dest" |
| 11259 | dstencryption := encrypt.NewSSE() |
| 11260 | |
| 11261 | uploadID, err := c.NewMultipartUpload(context.Background(), destBucketName, destObjectName, minio.PutObjectOptions{ServerSideEncryption: dstencryption}) |
| 11262 | if err != nil { |
no test coverage detected