Test PutObject using a large data to trigger multipart readat
()
| 603 | |
| 604 | // Test PutObject using a large data to trigger multipart readat |
| 605 | func testPutObjectReadAt() { |
| 606 | // initialize logging params |
| 607 | startTime := time.Now() |
| 608 | testName := getFuncName() |
| 609 | function := "PutObject(bucketName, objectName, reader, opts)" |
| 610 | args := map[string]interface{}{ |
| 611 | "bucketName": "", |
| 612 | "objectName": "", |
| 613 | "opts": "objectContentType", |
| 614 | } |
| 615 | |
| 616 | c, err := NewClient(ClientConfig{}) |
| 617 | if err != nil { |
| 618 | logError(testName, function, args, startTime, "", "MinIO client object creation failed", err) |
| 619 | return |
| 620 | } |
| 621 | |
| 622 | // Generate a new random bucket name. |
| 623 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 624 | args["bucketName"] = bucketName |
| 625 | |
| 626 | // Make a new bucket. |
| 627 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 628 | if err != nil { |
| 629 | logError(testName, function, args, startTime, "", "Make bucket failed", err) |
| 630 | return |
| 631 | } |
| 632 | |
| 633 | defer cleanupBucket(bucketName, c) |
| 634 | |
| 635 | bufSize := dataFileMap["datafile-129-MB"] |
| 636 | reader := getDataReader("datafile-129-MB") |
| 637 | defer reader.Close() |
| 638 | |
| 639 | // Save the data |
| 640 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 641 | args["objectName"] = objectName |
| 642 | |
| 643 | // Object content type |
| 644 | objectContentType := "binary/octet-stream" |
| 645 | args["objectContentType"] = objectContentType |
| 646 | |
| 647 | _, err = c.PutObject(context.Background(), bucketName, objectName, reader, int64(bufSize), minio.PutObjectOptions{ContentType: objectContentType}) |
| 648 | if err != nil { |
| 649 | logError(testName, function, args, startTime, "", "PutObject failed", err) |
| 650 | return |
| 651 | } |
| 652 | |
| 653 | // Read the data back |
| 654 | r, err := c.GetObject(context.Background(), bucketName, objectName, minio.GetObjectOptions{}) |
| 655 | if err != nil { |
| 656 | logError(testName, function, args, startTime, "", "Get Object failed", err) |
| 657 | return |
| 658 | } |
| 659 | |
| 660 | st, err := r.Stat() |
| 661 | if err != nil { |
| 662 | logError(testName, function, args, startTime, "", "Stat Object failed", err) |
no test coverage detected