Принять файл как пост и загрузить с помощью другого API - PullRequest
0 голосов
/ 03 июля 2019

Я должен взять файл от внешнего пользователя как сообщение и загрузить этот файл в Egnyte.Я использую Egnyte API для загрузки.Для этого мне нужно сначала загрузить файл в какой-то каталог, а оттуда я загружаю его в Egnyte api.Вместо этого я хочу пропустить загрузку файла в какой-либо каталог, напрямую передать его Egnyte api.

Код

v1.POST("/upload", func(c *gin.Context) {
            // single file
            file, ferr := c.FormFile("file")
            if ferr != nil {
                panic(ferr)
            }
            path, _ := os.Getwd()
            path += "/storage/"+file.Filename
            //c.SaveUploadedFile(file, path)
            //data, fExistsErr := os.Open(path)

            url := "https://demo.egnyte.com/pubapi/v1/fs-content/Shared/Staging/test/"+file.Filename
            //req, _ := http.NewRequest("POST", url, data)
            req, _ := http.NewRequest("POST", url, file)  //Here it gives error
            req.Header.Add("Authorization", "Bearer XXXXXXXXXXXX")
            req.Header.Add("content-type", "text/plain")
            req.Header.Add("name", "file")
            req.Header.Add("Content-Disposition", "form-data")
            res, _ := http.DefaultClient.Do(req)
            defer res.Body.Close()

            body, _ := ioutil.ReadAll(res.Body)
            fmt.Println(res.StatusCode)
            fmt.Println(http.StatusOK)
            fmt.Println(string(body))
            c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
        })

Пожалуйста, подскажите, где я ошибаюсь.если поделиться примером кода, это будет легко понять.

...