From c3ce024fc1a1e7841ac57e77313d967df45a5ee1 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 12 Mar 2014 14:07:01 -0700 Subject: [PATCH] reusing http connections --- go/operation/upload_content.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/go/operation/upload_content.go b/go/operation/upload_content.go index 17fe9e1c3..7d88b3721 100644 --- a/go/operation/upload_content.go +++ b/go/operation/upload_content.go @@ -21,6 +21,16 @@ type UploadResult struct { Error string } +var ( + client *http.Client +) + +func init() { + client = &http.Client{Transport: &http.Transport{ + MaxIdleConnsPerHost: 1024, + }} +} + var fileNameEscaper = strings.NewReplacer("\\", "\\\\", "\"", "\\\"") func Upload(uploadUrl string, filename string, reader io.Reader, isGzipped bool, mtype string) (*UploadResult, error) { @@ -57,7 +67,7 @@ func upload_content(uploadUrl string, fillBufferFunction func(w io.Writer) error glog.V(0).Infoln("error closing body", err) return nil, err } - resp, err := http.Post(uploadUrl, content_type, body_buf) + resp, err := client.Post(uploadUrl, content_type, body_buf) if err != nil { glog.V(0).Infoln("failing to upload to", uploadUrl, err.Error()) return nil, err