Test Core CopyObjectPart implementation for unencrypted to SSEC encryption copy part
()
| 10881 | |
| 10882 | // Test Core CopyObjectPart implementation for unencrypted to SSEC encryption copy part |
| 10883 | func testUnencryptedToSSECCopyObjectPart() { |
| 10884 | // initialize logging params |
| 10885 | startTime := time.Now() |
| 10886 | testName := getFuncName() |
| 10887 | function := "CopyObjectPart(destination, source)" |
| 10888 | args := map[string]interface{}{} |
| 10889 | |
| 10890 | client, err := NewClient(ClientConfig{TrailingHeaders: true}) |
| 10891 | if err != nil { |
| 10892 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 10893 | return |
| 10894 | } |
| 10895 | |
| 10896 | // Instantiate new core client object. |
| 10897 | c := minio.Core{Client: client} |
| 10898 | |
| 10899 | // Generate a new random bucket name. |
| 10900 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 10901 | |
| 10902 | // Make a new bucket. |
| 10903 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 10904 | if err != nil { |
| 10905 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 10906 | return |
| 10907 | } |
| 10908 | defer cleanupBucket(bucketName, client) |
| 10909 | // Make a buffer with 5MB of data |
| 10910 | buf := bytes.Repeat([]byte("abcde"), 1024*1024) |
| 10911 | |
| 10912 | // Save the data |
| 10913 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 10914 | password := "correct horse battery staple" |
| 10915 | putmetadata := map[string]string{ |
| 10916 | "Content-Type": "binary/octet-stream", |
| 10917 | } |
| 10918 | opts := minio.PutObjectOptions{ |
| 10919 | UserMetadata: putmetadata, |
| 10920 | } |
| 10921 | uploadInfo, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), "", "", opts) |
| 10922 | if err != nil { |
| 10923 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 10924 | return |
| 10925 | } |
| 10926 | |
| 10927 | st, err := c.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{}) |
| 10928 | if err != nil { |
| 10929 | logError(testName, function, args, startTime, "", "StatObject call failed", err) |
| 10930 | return |
| 10931 | } |
| 10932 | |
| 10933 | if st.Size != int64(len(buf)) { |
| 10934 | logError(testName, function, args, startTime, "", fmt.Sprintf("Error: number of bytes does not match, want %v, got %v\n", len(buf), st.Size), err) |
| 10935 | return |
| 10936 | } |
| 10937 | |
| 10938 | destBucketName := bucketName |
| 10939 | destObjectName := objectName + "-dest" |
| 10940 | dstencryption := encrypt.DefaultPBKDF([]byte(password), []byte(destBucketName+destObjectName)) |
no test coverage detected