Test removing multiple objects with Remove API as iterator
()
| 4467 | |
| 4468 | // Test removing multiple objects with Remove API as iterator |
| 4469 | func testRemoveMultipleObjectsIter() { |
| 4470 | // initialize logging params |
| 4471 | startTime := time.Now() |
| 4472 | testName := getFuncName() |
| 4473 | function := "RemoveObjects(bucketName, objectsCh)" |
| 4474 | args := map[string]interface{}{ |
| 4475 | "bucketName": "", |
| 4476 | } |
| 4477 | |
| 4478 | c, err := NewClient(ClientConfig{}) |
| 4479 | if err != nil { |
| 4480 | logError(testName, function, args, startTime, "", "MinIO client object creation failed", err) |
| 4481 | return |
| 4482 | } |
| 4483 | |
| 4484 | // Generate a new random bucket name. |
| 4485 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 4486 | args["bucketName"] = bucketName |
| 4487 | |
| 4488 | // Make a new bucket. |
| 4489 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 4490 | if err != nil { |
| 4491 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 4492 | return |
| 4493 | } |
| 4494 | |
| 4495 | defer cleanupBucket(bucketName, c) |
| 4496 | |
| 4497 | buf := []byte("a") |
| 4498 | |
| 4499 | // Multi remove of 1100 objects |
| 4500 | nrObjects := 1100 |
| 4501 | |
| 4502 | objectsIter := func() iter.Seq[minio.ObjectInfo] { |
| 4503 | return func(yield func(minio.ObjectInfo) bool) { |
| 4504 | // Upload objects and send them to objectsCh |
| 4505 | for i := 0; i < nrObjects; i++ { |
| 4506 | objectName := "sample" + strconv.Itoa(i) + ".txt" |
| 4507 | info, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), 1, |
| 4508 | minio.PutObjectOptions{ContentType: "application/octet-stream"}) |
| 4509 | if err != nil { |
| 4510 | logError(testName, function, args, startTime, "", "PutObject failed", err) |
| 4511 | continue |
| 4512 | } |
| 4513 | if !yield(minio.ObjectInfo{ |
| 4514 | Key: info.Key, |
| 4515 | VersionID: info.VersionID, |
| 4516 | }) { |
| 4517 | return |
| 4518 | } |
| 4519 | } |
| 4520 | } |
| 4521 | } |
| 4522 | |
| 4523 | // Call RemoveObjects API |
| 4524 | results, err := c.RemoveObjectsWithIter(context.Background(), bucketName, objectsIter(), minio.RemoveObjectsOptions{}) |
| 4525 | if err != nil { |
| 4526 | logError(testName, function, args, startTime, "", "Unexpected error", err) |
no test coverage detected