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

Function testFPutObjectMultipart

functional_tests.go:4555–4642  ·  view source on GitHub ↗

Tests FPutObject of a big file to trigger multipart

()

Source from the content-addressed store, hash-verified

4553
4554// Tests FPutObject of a big file to trigger multipart
4555func testFPutObjectMultipart() {
4556 // initialize logging params
4557 startTime := time.Now()
4558 testName := getFuncName()
4559 function := "FPutObject(bucketName, objectName, fileName, opts)"
4560 args := map[string]interface{}{
4561 "bucketName": "",
4562 "objectName": "",
4563 "fileName": "",
4564 "opts": "",
4565 }
4566
4567 c, err := NewClient(ClientConfig{TrailingHeaders: true})
4568 if err != nil {
4569 logError(testName, function, args, startTime, "", "MinIO client object creation failed", err)
4570 return
4571 }
4572
4573 // Generate a new random bucket name.
4574 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
4575 args["bucketName"] = bucketName
4576
4577 // Make a new bucket.
4578 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
4579 if err != nil {
4580 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
4581 return
4582 }
4583
4584 defer cleanupBucket(bucketName, c)
4585
4586 // Upload 4 parts to utilize all 3 'workers' in multipart and still have a part to upload.
4587 fileName := getMintDataDirFilePath("datafile-129-MB")
4588 if fileName == "" {
4589 // Make a temp file with minPartSize bytes of data.
4590 file, err := os.CreateTemp(os.TempDir(), "FPutObjectTest")
4591 if err != nil {
4592 logError(testName, function, args, startTime, "", "TempFile creation failed", err)
4593 return
4594 }
4595 // Upload 2 parts to utilize all 3 'workers' in multipart and still have a part to upload.
4596 if _, err = io.Copy(file, getDataReader("datafile-129-MB")); err != nil {
4597 logError(testName, function, args, startTime, "", "Copy failed", err)
4598 return
4599 }
4600 if err = file.Close(); err != nil {
4601 logError(testName, function, args, startTime, "", "File Close failed", err)
4602 return
4603 }
4604 fileName = file.Name()
4605 args["fileName"] = fileName
4606 }
4607 totalSize := dataFileMap["datafile-129-MB"]
4608 // Set base object name
4609 objectName := bucketName + "FPutObject" + "-standard"
4610 args["objectName"] = objectName
4611
4612 objectContentType := "testapplication/octet-stream"

Callers 1

mainFunction · 0.85

Calls 13

MakeBucketMethod · 0.95
FPutObjectMethod · 0.95
GetObjectMethod · 0.95
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
getMintDataDirFilePathFunction · 0.85
getDataReaderFunction · 0.85
logSuccessFunction · 0.85
StatMethod · 0.80
randStringFunction · 0.70

Tested by

no test coverage detected