| 35 | var errWithoutConfig = errors.New("云存储配置不正确") |
| 36 | |
| 37 | func NewCloudStoreWithConfig(storeConfig interface{}, storeType helper.ConfigCate, private bool) (cs *CloudStore, err error) { |
| 38 | cs = &CloudStore{ |
| 39 | StoreType: storeType, |
| 40 | config: storeConfig, |
| 41 | } |
| 42 | cs.Private = private |
| 43 | switch cs.StoreType { |
| 44 | case StoreOss: |
| 45 | cfg := cs.config.(*ConfigOss) |
| 46 | bucket := cfg.PublicBucket |
| 47 | domain := cfg.PublicBucketDomain |
| 48 | if cs.Private { |
| 49 | bucket = cfg.PrivateBucket |
| 50 | domain = cfg.PrivateBucketDomain |
| 51 | if cfg.Expire <= 0 { |
| 52 | cfg.Expire = 1800 |
| 53 | } |
| 54 | cs.expire = cfg.Expire |
| 55 | } |
| 56 | cs.privateDomain = cfg.PrivateBucketDomain |
| 57 | cs.publicDomain = cfg.PublicBucketDomain |
| 58 | if cfg.AccessKey == "" || cfg.SecretKey == "" || cfg.Endpoint == "" || bucket == "" { |
| 59 | err = errWithoutConfig |
| 60 | return |
| 61 | } |
| 62 | cs.client, err = CloudStore2.NewOSS(cfg.AccessKey, cfg.SecretKey, cfg.Endpoint, bucket, domain) |
| 63 | cs.CanGZIP = true |
| 64 | case StoreObs: |
| 65 | cfg := cs.config.(*ConfigObs) |
| 66 | bucket := cfg.PublicBucket |
| 67 | domain := cfg.PublicBucketDomain |
| 68 | if cs.Private { |
| 69 | bucket = cfg.PrivateBucket |
| 70 | domain = cfg.PrivateBucketDomain |
| 71 | if cfg.Expire <= 0 { |
| 72 | cfg.Expire = 1800 |
| 73 | } |
| 74 | cs.expire = cfg.Expire |
| 75 | } |
| 76 | cs.privateDomain = cfg.PrivateBucketDomain |
| 77 | cs.publicDomain = cfg.PublicBucketDomain |
| 78 | if cfg.AccessKey == "" || cfg.SecretKey == "" || cfg.Endpoint == "" || bucket == "" { |
| 79 | err = errWithoutConfig |
| 80 | return |
| 81 | } |
| 82 | cs.client, err = CloudStore2.NewOBS(cfg.AccessKey, cfg.SecretKey, bucket, cfg.Endpoint, domain) |
| 83 | case StoreQiniu: |
| 84 | cfg := cs.config.(*ConfigQiniu) |
| 85 | bucket := cfg.PublicBucket |
| 86 | domain := cfg.PublicBucketDomain |
| 87 | if cs.Private { |
| 88 | bucket = cfg.PrivateBucket |
| 89 | domain = cfg.PrivateBucketDomain |
| 90 | if cfg.Expire <= 0 { |
| 91 | cfg.Expire = 1800 |
| 92 | } |
| 93 | cs.expire = cfg.Expire |
| 94 | } |