package file_store // //import ( // "context" // "fmt" // // "github.com/qiniu/go-sdk/v7/auth/qbox" // "github.com/qiniu/go-sdk/v7/storage" //) // //type Zone string // //const ( // // HuaDong 华东 // HuaDong Zone = "HuaDong" // // HuaBei 华北 // HuaBei Zone = "HuaBei" // // HuaNan 华南 // HuaNan Zone = "HuaNan" // // BeiMei 北美 // BeiMei Zone = "BeiMei" // // XinJiaPo 新加坡 // XinJiaPo Zone = "XinJiaPo" //) // //type QiNiuKODO struct { // Client interface{} // BucketName string // cfg storage.Config // options []ClientOption //} // //func (e *QiNiuKODO) getToken() string { // putPolicy := storage.PutPolicy{ // Scope: e.BucketName, // } // if len(e.options) > 0 && e.options[0]["Expires"] != nil { // putPolicy.Expires = e.options[0]["Expires"].(uint64) // } // upToken := putPolicy.UploadToken(e.Client.(*qbox.Mac)) // return upToken //} // //// Setup 装载 //// endpoint sss //func (e *QiNiuKODO) Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error { // // mac := qbox.NewMac(accessKeyID, accessKeySecret) // // 获取存储空间。 // cfg := storage.Config{} // // 空间对应的机房 // e.setZoneORDefault(cfg, options...) // // 是否使用https域名 // cfg.UseHTTPS = true // // 上传是否使用CDN上传加速 // cfg.UseCdnDomains = false // // e.Client = mac // e.BucketName = BucketName // e.cfg = cfg // e.options = options // return nil //} // //// setZoneORDefault 设置Zone或者默认华东 //func (e *QiNiuKODO) setZoneORDefault(cfg storage.Config, options ...ClientOption) { // if len(options) > 0 && options[0]["Zone"] != nil { // if _, ok := options[0]["Zone"].(Zone); !ok { // cfg.Zone = &storage.ZoneHuadong // } // switch options[0]["Zone"].(Zone) { // case HuaDong: // cfg.Zone = &storage.ZoneHuadong // case HuaBei: // cfg.Zone = &storage.ZoneHuabei // case HuaNan: // cfg.Zone = &storage.ZoneHuanan // case BeiMei: // cfg.Zone = &storage.ZoneBeimei // case XinJiaPo: // cfg.Zone = &storage.ZoneXinjiapo // default: // cfg.Zone = &storage.ZoneHuadong // } // } //} // //// UpLoad 文件上传 //func (e *QiNiuKODO) UpLoad(yourObjectName string, localFile interface{}) error { // // // 构建表单上传的对象 // formUploader := storage.NewFormUploader(&e.cfg) // ret := storage.PutRet{} // // 可选配置 // putExtra := storage.PutExtra{ // Params: map[string]string{ // "x:name": "github logo", // }, // } // err := formUploader.PutFile(context.Background(), &ret, e.getToken(), yourObjectName, localFile.(string), &putExtra) // if err != nil { // fmt.Println(err) // return err // } // fmt.Println(ret.Key, ret.Hash) // return nil //} // //func (e *QiNiuKODO) GetTempToken() (string, error) { // token := e.getToken() // return token, nil //}