OSDN Git Service

ec25e626025dff8b3b0cd8f9c15a76be7756e20c
[bytom/vapor.git] / toolbar / osssync / download / oss.go
1 package download
2
3 import (
4         "io"
5         "net/http"
6         "os"
7
8         "github.com/bytom/vapor/toolbar/osssync/util"
9 )
10
11 // GetObject download the file object from OSS
12 func (d *DownloadKeeper) GetObject(filename string) (*io.ReadCloser, error) {
13         url := d.OssUrl + filename
14         res, err := http.Get(url)
15         if err != nil {
16                 return nil, err
17         }
18
19         return &res.Body, nil
20 }
21
22 // GetObjectToFile download the file object from OSS to local
23 func (d *DownloadKeeper) GetObjectToFile(filename string) error {
24         f, err := os.Create(d.FileUtil.LocalDir + filename)
25         if err != nil {
26                 return err
27         }
28
29         body, err := d.GetObject(filename)
30         if err != nil {
31                 return err
32         }
33
34         defer (*body).Close()
35
36         io.Copy(f, *body)
37         return nil
38 }
39
40 // GetInfoJson Download info.json
41 func (d *DownloadKeeper) GetInfoJson() (*util.Info, error) {
42         body, err := d.GetObject("info.json")
43         if err != nil {
44                 return nil, err
45         }
46
47         return util.GetInfoJson(*body)
48 }