(t *testing.T)
| 809 | } |
| 810 | |
| 811 | func TestCoreMultipartUpload(t *testing.T) { |
| 812 | if os.Getenv(serverEndpoint) == "" { |
| 813 | t.Skip("SERVER_ENDPOINT not set") |
| 814 | } |
| 815 | if testing.Short() { |
| 816 | t.Skip("skipping functional tests for the short runs") |
| 817 | } |
| 818 | |
| 819 | // Instantiate new minio client object. |
| 820 | core, err := NewCore( |
| 821 | os.Getenv(serverEndpoint), |
| 822 | &Options{ |
| 823 | Creds: credentials.NewStaticV4(os.Getenv(accessKey), os.Getenv(secretKey), ""), |
| 824 | Secure: mustParseBool(os.Getenv(enableSecurity)), |
| 825 | }) |
| 826 | if err != nil { |
| 827 | t.Fatal("Error:", err) |
| 828 | } |
| 829 | |
| 830 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test") |
| 831 | // Make a new bucket. |
| 832 | err = core.MakeBucket(context.Background(), bucketName, MakeBucketOptions{Region: "us-east-1"}) |
| 833 | if err != nil { |
| 834 | t.Fatal("Error:", err, bucketName) |
| 835 | } |
| 836 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 837 | |
| 838 | objectContentType := "binary/octet-stream" |
| 839 | metadata := make(map[string]string) |
| 840 | metadata["Content-Type"] = objectContentType |
| 841 | putopts := PutObjectOptions{ |
| 842 | UserMetadata: metadata, |
| 843 | } |
| 844 | uploadID, err := core.NewMultipartUpload(context.Background(), bucketName, objectName, putopts) |
| 845 | if err != nil { |
| 846 | t.Fatal("Error:", err, bucketName, objectName) |
| 847 | } |
| 848 | buf := bytes.Repeat([]byte("a"), 32*1024*1024) |
| 849 | r := bytes.NewReader(buf) |
| 850 | partBuf := make([]byte, 100*1024*1024) |
| 851 | parts := make([]CompletePart, 0, 5) |
| 852 | partID := 0 |
| 853 | for { |
| 854 | n, err := r.Read(partBuf) |
| 855 | if err != nil && err != io.EOF { |
| 856 | t.Fatal("Error:", err) |
| 857 | } |
| 858 | if err == io.EOF { |
| 859 | break |
| 860 | } |
| 861 | if n > 0 { |
| 862 | partID++ |
| 863 | data := bytes.NewReader(partBuf[:n]) |
| 864 | dataLen := int64(len(partBuf[:n])) |
| 865 | objectPart, err := core.PutObjectPart(context.Background(), bucketName, objectName, uploadID, partID, |
| 866 | data, dataLen, |
| 867 | PutObjectPartOptions{ |
| 868 | Md5Base64: "", |
nothing calls this directly
no test coverage detected