diff options
Diffstat (limited to 'go/util/http_util.go')
| -rw-r--r-- | go/util/http_util.go | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/go/util/http_util.go b/go/util/http_util.go deleted file mode 100644 index 29b2043ee..000000000 --- a/go/util/http_util.go +++ /dev/null @@ -1,163 +0,0 @@ -package util - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "io" - "io/ioutil" - "net/http" - "net/url" - "strings" - - "github.com/chrislusf/seaweedfs/go/security" -) - -var ( - client *http.Client - Transport *http.Transport -) - -func init() { - Transport = &http.Transport{ - MaxIdleConnsPerHost: 1024, - } - client = &http.Client{Transport: Transport} -} - -func PostBytes(url string, body []byte) ([]byte, error) { - r, err := client.Post(url, "application/octet-stream", bytes.NewReader(body)) - if err != nil { - return nil, fmt.Errorf("Post to %s: %v", url, err) - } - defer r.Body.Close() - b, err := ioutil.ReadAll(r.Body) - if err != nil { - return nil, fmt.Errorf("Read response body: %v", err) - } - return b, nil -} - -func Post(url string, values url.Values) ([]byte, error) { - r, err := client.PostForm(url, values) - if err != nil { - return nil, err - } - defer r.Body.Close() - b, err := ioutil.ReadAll(r.Body) - if err != nil { - return nil, err - } - return b, nil -} - -func Get(url string) ([]byte, error) { - r, err := client.Get(url) - if err != nil { - return nil, err - } - defer r.Body.Close() - b, err := ioutil.ReadAll(r.Body) - if r.StatusCode != 200 { - return nil, fmt.Errorf("%s: %s", url, r.Status) - } - if err != nil { - return nil, err - } - return b, nil -} - -func Delete(url string, jwt security.EncodedJwt) error { - req, err := http.NewRequest("DELETE", url, nil) - if jwt != "" { - req.Header.Set("Authorization", "BEARER "+string(jwt)) - } - if err != nil { - return err - } - resp, e := client.Do(req) - if e != nil { - return e - } - defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return err - } - switch resp.StatusCode { - case http.StatusNotFound, http.StatusAccepted, http.StatusOK: - return nil - } - m := make(map[string]interface{}) - if e := json.Unmarshal(body, m); e == nil { - if s, ok := m["error"].(string); ok { - return errors.New(s) - } - } - return errors.New(string(body)) -} - -func GetBufferStream(url string, values url.Values, allocatedBytes []byte, eachBuffer func([]byte)) error { - r, err := client.PostForm(url, values) - if err != nil { - return err - } - defer r.Body.Close() - if r.StatusCode != 200 { - return fmt.Errorf("%s: %s", url, r.Status) - } - bufferSize := len(allocatedBytes) - for { - n, err := r.Body.Read(allocatedBytes) - if n == bufferSize { - eachBuffer(allocatedBytes) - } - if err != nil { - if err == io.EOF { - return nil - } - return err - } - } - return nil -} - -func GetUrlStream(url string, values url.Values, readFn func(io.Reader) error) error { - r, err := client.PostForm(url, values) - if err != nil { - return err - } - defer r.Body.Close() - if r.StatusCode != 200 { - return fmt.Errorf("%s: %s", url, r.Status) - } - return readFn(r.Body) -} - -func DownloadUrl(fileUrl string) (filename string, rc io.ReadCloser, e error) { - response, err := client.Get(fileUrl) - if err != nil { - return "", nil, err - } - contentDisposition := response.Header["Content-Disposition"] - if len(contentDisposition) > 0 { - if strings.HasPrefix(contentDisposition[0], "filename=") { - filename = contentDisposition[0][len("filename="):] - filename = strings.Trim(filename, "\"") - } - } - rc = response.Body - return -} - -func Do(req *http.Request) (resp *http.Response, err error) { - return client.Do(req) -} - -func NormalizeUrl(url string) string { - if strings.HasPrefix(url, "http://") || strings.HasPrefix(url, "https://") { - return url - } - return "http://" + url -} |
