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

Function testFPutObjectMultipart

functional_tests.go:4659–4746  ·  view source on GitHub ↗

Tests FPutObject of a big file to trigger multipart

()

Source from the content-addressed store, hash-verified

4657
4658// Tests FPutObject of a big file to trigger multipart
4659func testFPutObjectMultipart() {
4660 // initialize logging params
4661 startTime := time.Now()
4662 testName := getFuncName()
4663 function := "FPutObject(bucketName, objectName, fileName, opts)"
4664 args := map[string]interface{}{
4665 "bucketName": "",
4666 "objectName": "",
4667 "fileName": "",
4668 "opts": "",
4669 }
4670
4671 c, err := NewClient(ClientConfig{TrailingHeaders: true})
4672 if err != nil {
4673 logError(testName, function, args, startTime, "", "MinIO client object creation failed", err)
4674 return
4675 }
4676
4677 // Generate a new random bucket name.
4678 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
4679 args["bucketName"] = bucketName
4680
4681 // Make a new bucket.
4682 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
4683 if err != nil {
4684 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
4685 return
4686 }
4687
4688 defer cleanupBucket(bucketName, c)
4689
4690 // Upload 4 parts to utilize all 3 'workers' in multipart and still have a part to upload.
4691 fileName := getMintDataDirFilePath("datafile-129-MB")
4692 if fileName == "" {
4693 // Make a temp file with minPartSize bytes of data.
4694 file, err := os.CreateTemp(os.TempDir(), "FPutObjectTest")
4695 if err != nil {
4696 logError(testName, function, args, startTime, "", "TempFile creation failed", err)
4697 return
4698 }
4699 // Upload 2 parts to utilize all 3 'workers' in multipart and still have a part to upload.
4700 if _, err = io.Copy(file, getDataReader("datafile-129-MB")); err != nil {
4701 logError(testName, function, args, startTime, "", "Copy failed", err)
4702 return
4703 }
4704 if err = file.Close(); err != nil {
4705 logError(testName, function, args, startTime, "", "File Close failed", err)
4706 return
4707 }
4708 fileName = file.Name()
4709 args["fileName"] = fileName
4710 }
4711 totalSize := dataFileMap["datafile-129-MB"]
4712 // Set base object name
4713 objectName := bucketName + "FPutObject" + "-standard"
4714 args["objectName"] = objectName
4715
4716 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