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

Function testRemoveMultipleObjectsIter

functional_tests.go:4469–4538  ·  view source on GitHub ↗

Test removing multiple objects with Remove API as iterator

()

Source from the content-addressed store, hash-verified

4467
4468// Test removing multiple objects with Remove API as iterator
4469func 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)

Callers 1

mainFunction · 0.85

Calls 9

MakeBucketMethod · 0.95
PutObjectMethod · 0.95
RemoveObjectsWithIterMethod · 0.95
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
logSuccessFunction · 0.85
randStringFunction · 0.70

Tested by

no test coverage detected