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

Function testRemoveMultipleObjectsIter

functional_tests.go:4365–4434  ·  view source on GitHub ↗

Test removing multiple objects with Remove API as iterator

()

Source from the content-addressed store, hash-verified

4363
4364// Test removing multiple objects with Remove API as iterator
4365func testRemoveMultipleObjectsIter() {
4366 // initialize logging params
4367 startTime := time.Now()
4368 testName := getFuncName()
4369 function := "RemoveObjects(bucketName, objectsCh)"
4370 args := map[string]interface{}{
4371 "bucketName": "",
4372 }
4373
4374 c, err := NewClient(ClientConfig{})
4375 if err != nil {
4376 logError(testName, function, args, startTime, "", "MinIO client object creation failed", err)
4377 return
4378 }
4379
4380 // Generate a new random bucket name.
4381 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
4382 args["bucketName"] = bucketName
4383
4384 // Make a new bucket.
4385 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
4386 if err != nil {
4387 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
4388 return
4389 }
4390
4391 defer cleanupBucket(bucketName, c)
4392
4393 buf := []byte("a")
4394
4395 // Multi remove of 1100 objects
4396 nrObjects := 1100
4397
4398 objectsIter := func() iter.Seq[minio.ObjectInfo] {
4399 return func(yield func(minio.ObjectInfo) bool) {
4400 // Upload objects and send them to objectsCh
4401 for i := 0; i < nrObjects; i++ {
4402 objectName := "sample" + strconv.Itoa(i) + ".txt"
4403 info, err := c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), 1,
4404 minio.PutObjectOptions{ContentType: "application/octet-stream"})
4405 if err != nil {
4406 logError(testName, function, args, startTime, "", "PutObject failed", err)
4407 continue
4408 }
4409 if !yield(minio.ObjectInfo{
4410 Key: info.Key,
4411 VersionID: info.VersionID,
4412 }) {
4413 return
4414 }
4415 }
4416 }
4417 }
4418
4419 // Call RemoveObjects API
4420 results, err := c.RemoveObjectsWithIter(context.Background(), bucketName, objectsIter(), minio.RemoveObjectsOptions{})
4421 if err != nil {
4422 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