OSDN Git Service

Create upload.go (#577)
[bytom/vapor.git] / toolbar / osssync / sync / blockkeeper.go
1 package sync
2
3 import (
4         "github.com/aliyun/aliyun-oss-go-sdk/oss"
5
6         "github.com/bytom/vapor/toolbar/apinode"
7         "github.com/bytom/vapor/toolbar/osssync/config"
8         "github.com/bytom/vapor/toolbar/osssync/util"
9 )
10
11 // BlockKeeper the struct of the BlockKeeper
12 type BlockKeeper struct {
13         Node      *apinode.Node
14         OssClient *oss.Client
15         OssBucket *oss.Bucket
16         FileUtil  *util.FileUtil
17 }
18
19 // NewBlockKeeper return one new instance of BlockKeeper
20 func NewBlockKeeper() (*BlockKeeper, error) {
21         cfg := &config.Config{}
22         err := config.LoadConfig(&cfg)
23         if err != nil {
24                 return nil, err
25         }
26
27         node := apinode.NewNode(cfg.VaporURL)
28
29         ossClient, err := oss.New(cfg.Oss.Endpoint, cfg.Oss.AccessKeyID, cfg.Oss.AccessKeySecret)
30         if err != nil {
31                 return nil, err
32         }
33
34         ossBucket, err := ossClient.Bucket("bytom-seed")
35         if err != nil {
36                 return nil, err
37         }
38
39         fileUtil := util.NewFileUtil("./blocks")
40
41         return &BlockKeeper{
42                 Node:      node,
43                 OssClient: ossClient,
44                 OssBucket: ossBucket,
45                 FileUtil:  fileUtil,
46         }, nil
47 }