Tests FPutObject of a big file to trigger multipart
()
| 4657 | |
| 4658 | // Tests FPutObject of a big file to trigger multipart |
| 4659 | func 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" |
no test coverage detected