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

Function TestCoreMultipartUpload

core_test.go:806–898  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 13

NewMultipartUploadMethod · 0.95
PutObjectPartMethod · 0.95
NewStaticV4Function · 0.92
NewSSEFunction · 0.92
NewCoreFunction · 0.85
MakeBucketMethod · 0.80
listObjectPartsMethod · 0.80
RemoveObjectMethod · 0.80
RemoveBucketMethod · 0.80
mustParseBoolFunction · 0.70
randStringFunction · 0.70

Tested by

no test coverage detected