Tests copy object with various checksum scenarios, tries to not repeat CopyObjectV2 test and instead just focus on Checksum.
()
| 9112 | // Tests copy object with various checksum scenarios, tries to not repeat CopyObjectV2 test and |
| 9113 | // instead just focus on Checksum. |
| 9114 | func testCopyObjectWithChecksums() { |
| 9115 | startTime := time.Now() |
| 9116 | testName := getFuncName() |
| 9117 | function := "CopyObjectWithChecksums(destination, source)" |
| 9118 | args := map[string]interface{}{} |
| 9119 | |
| 9120 | c, err := NewClient(ClientConfig{CredsV2: true}) |
| 9121 | if err != nil { |
| 9122 | logError(testName, function, args, startTime, "", "MinIO v2 client object creation failed", err) |
| 9123 | return |
| 9124 | } |
| 9125 | |
| 9126 | // Generate a new random bucket name. |
| 9127 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 9128 | |
| 9129 | // Make a new bucket in 'us-east-1' (source bucket). |
| 9130 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 9131 | if err != nil { |
| 9132 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 9133 | return |
| 9134 | } |
| 9135 | defer cleanupBucket(bucketName, c) |
| 9136 | |
| 9137 | // Make a new bucket in 'us-east-1' (destination bucket). |
| 9138 | err = c.MakeBucket(context.Background(), bucketName+"-copy", minio.MakeBucketOptions{Region: "us-east-1"}) |
| 9139 | if err != nil { |
| 9140 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 9141 | return |
| 9142 | } |
| 9143 | defer cleanupBucket(bucketName+"-copy", c) |
| 9144 | |
| 9145 | // Generate 33K of data. |
| 9146 | bufSize := dataFileMap["datafile-33-kB"] |
| 9147 | reader := getDataReader("datafile-33-kB") |
| 9148 | defer reader.Close() |
| 9149 | |
| 9150 | // PutObject to upload the object to the bucket, this object will have a Crc64NVME checksum applied |
| 9151 | // by default since nothing was explicitly specified. |
| 9152 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 9153 | _, err = c.PutObject(context.Background(), bucketName, objectName, reader, int64(bufSize), minio.PutObjectOptions{ContentType: "binary/octet-stream"}) |
| 9154 | if err != nil { |
| 9155 | logError(testName, function, args, startTime, "", "PutObject failed", err) |
| 9156 | return |
| 9157 | } |
| 9158 | // GetObject to obtain the eTag |
| 9159 | r, err := c.GetObject(context.Background(), bucketName, objectName, minio.GetObjectOptions{}) |
| 9160 | if err != nil { |
| 9161 | logError(testName, function, args, startTime, "", "GetObject failed", err) |
| 9162 | return |
| 9163 | } |
| 9164 | objInfo, err := r.Stat() |
| 9165 | if err != nil { |
| 9166 | logError(testName, function, args, startTime, "", "Stat failed", err) |
| 9167 | return |
| 9168 | } |
| 9169 | r.Close() |
| 9170 | |
| 9171 | // Copy source options |
no test coverage detected