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

Function TestCoreMultipartUpload

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

Source from the content-addressed store, hash-verified

809}
810
811func 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: "",

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