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