/
client.go
41 lines (33 loc) · 904 Bytes
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package pufferpanel
import (
"github.com/cavaliergopher/grab/v3"
"github.com/mholt/archiver/v3"
"net/http"
"os"
)
var httpClient = &http.Client{}
func Http() *http.Client {
return httpClient
}
func HttpGet(requestUrl string) (*http.Response, error) {
return httpClient.Get(requestUrl)
}
func HttpExtract(requestUrl, directory string) error {
//we will write this to temp so we can not keep so much in memoryf
response, err := grab.Get(os.TempDir(), requestUrl)
if err != nil {
return err
}
defer os.Remove(response.Filename)
err = Extract(nil, response.Filename, directory, "*", false, nil)
return err
}
func HttpExtractZip(requestUrl, directory string) error {
response, err := grab.Get(os.TempDir(), requestUrl)
if err != nil {
return err
}
defer os.Remove(response.Filename)
err = Extract(nil, response.Filename, directory, "*", false, archiver.DefaultZip)
return err
}