MCPcopy
hub / github.com/minio/minio-go / testCopyObjectWithVersioning

Function testCopyObjectWithVersioning

functional_tests.go:1267–1388  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1265}
1266
1267func testCopyObjectWithVersioning() {
1268 // initialize logging params
1269 startTime := time.Now()
1270 testName := getFuncName()
1271 function := "CopyObject()"
1272 args := map[string]interface{}{}
1273
1274 c, err := NewClient(ClientConfig{})
1275 if err != nil {
1276 logError(testName, function, args, startTime, "", "MinIO client object creation failed", err)
1277 return
1278 }
1279
1280 // Generate a new random bucket name.
1281 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
1282 args["bucketName"] = bucketName
1283
1284 // Make a new bucket.
1285 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1", ObjectLocking: true})
1286 if err != nil {
1287 logError(testName, function, args, startTime, "", "Make bucket failed", err)
1288 return
1289 }
1290
1291 err = c.EnableVersioning(context.Background(), bucketName)
1292 if err != nil {
1293 logError(testName, function, args, startTime, "", "Enable versioning failed", err)
1294 return
1295 }
1296
1297 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
1298 args["objectName"] = objectName
1299
1300 testFiles := []string{"datafile-1-b", "datafile-10-kB"}
1301 for _, testFile := range testFiles {
1302 r := getDataReader(testFile)
1303 buf, err := io.ReadAll(r)
1304 if err != nil {
1305 logError(testName, function, args, startTime, "", "unexpected failure", err)
1306 return
1307 }
1308 r.Close()
1309 _, err = c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{})
1310 if err != nil {
1311 logError(testName, function, args, startTime, "", "PutObject failed", err)
1312 return
1313 }
1314 }
1315
1316 objectsInfo := c.ListObjects(context.Background(), bucketName, minio.ListObjectsOptions{WithVersions: true, Recursive: true})
1317 var infos []minio.ObjectInfo
1318 for info := range objectsInfo {
1319 if info.Err != nil {
1320 logError(testName, function, args, startTime, "", "Unexpected error during listing objects", err)
1321 return
1322 }
1323 infos = append(infos, info)
1324 }

Callers 1

mainFunction · 0.85

Calls 15

MakeBucketMethod · 0.95
EnableVersioningMethod · 0.95
PutObjectMethod · 0.95
ListObjectsMethod · 0.95
GetObjectMethod · 0.95
CopyObjectMethod · 0.95
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
getDataReaderFunction · 0.85
cleanupVersionedBucketFunction · 0.85
logSuccessFunction · 0.85

Tested by

no test coverage detected