You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.4 KiB
Go
102 lines
3.4 KiB
Go
package upload
|
|
|
|
import (
|
|
"mime/multipart"
|
|
)
|
|
|
|
// import (
|
|
// "context"
|
|
// "errors"
|
|
// "fmt"
|
|
// "mime/multipart"
|
|
// "time"
|
|
//
|
|
// "github.com/qiniu/api.v7/v7/auth/qbox"
|
|
// "github.com/qiniu/api.v7/v7/storage"
|
|
// "go.uber.org/zap"
|
|
// "pychr/global"
|
|
// )
|
|
|
|
type Qiniu struct{}
|
|
|
|
// @author: [piexlmax](https://github.com/piexlmax)
|
|
// @author: [ccfish86](https://github.com/ccfish86)
|
|
// @author: [SliverHorn](https://github.com/SliverHorn)
|
|
// @object: *Qiniu
|
|
// @function: UploadFile
|
|
// @description: 上传文件
|
|
// @param: file *multipart.FileHeader
|
|
// @return: string, string, error
|
|
|
|
func (*Qiniu) UploadFile(file *multipart.FileHeader) (string, string, error) {
|
|
// putPolicy := storage.PutPolicy{Scope: global.GVA_CONFIG.Qiniu.Bucket}
|
|
// mac := qbox.NewMac(global.GVA_CONFIG.Qiniu.AccessKey, global.GVA_CONFIG.Qiniu.SecretKey)
|
|
// upToken := putPolicy.UploadToken(mac)
|
|
// cfg := qiniuConfig()
|
|
// formUploader := storage.NewFormUploader(cfg)
|
|
// ret := storage.PutRet{}
|
|
// putExtra := storage.PutExtra{Params: map[string]string{"x:name": "github logo"}}
|
|
//
|
|
// f, openError := file.Open()
|
|
// if openError != nil {
|
|
// global.GVA_LOG.Error("function file.Open() failed", zap.Any("err", openError.Error()))
|
|
//
|
|
// return "", "", errors.New("function file.Open() failed, err:" + openError.Error())
|
|
// }
|
|
// defer f.Close() // 创建文件 defer 关闭
|
|
// fileKey := fmt.Sprintf("%d%s", time.Now().Unix(), file.Filename) // 文件名格式 自己可以改 建议保证唯一性
|
|
// putErr := formUploader.Put(context.Background(), &ret, upToken, fileKey, f, file.Size, &putExtra)
|
|
// if putErr != nil {
|
|
// global.GVA_LOG.Error("function formUploader.Put() failed", zap.Any("err", putErr.Error()))
|
|
// return "", "", errors.New("function formUploader.Put() failed, err:" + putErr.Error())
|
|
// }
|
|
// return global.GVA_CONFIG.Qiniu.ImgPath + "/" + ret.Key, ret.Key, nil
|
|
return "", "", nil
|
|
}
|
|
|
|
// @author: [piexlmax](https://github.com/piexlmax)
|
|
// @author: [ccfish86](https://github.com/ccfish86)
|
|
// @author: [SliverHorn](https://github.com/SliverHorn)
|
|
// @object: *Qiniu
|
|
// @function: DeleteFile
|
|
// @description: 删除文件
|
|
// @param: key string
|
|
// @return: error
|
|
|
|
func (*Qiniu) DeleteFile(key string) error {
|
|
// mac := qbox.NewMac(global.GVA_CONFIG.Qiniu.AccessKey, global.GVA_CONFIG.Qiniu.SecretKey)
|
|
// cfg := qiniuConfig()
|
|
// bucketManager := storage.NewBucketManager(mac, cfg)
|
|
// if err := bucketManager.Delete(global.GVA_CONFIG.Qiniu.Bucket, key); err != nil {
|
|
// global.GVA_LOG.Error("function bucketManager.Delete() failed", zap.Any("err", err.Error()))
|
|
// return errors.New("function bucketManager.Delete() failed, err:" + err.Error())
|
|
// }
|
|
return nil
|
|
}
|
|
|
|
// @author: [SliverHorn](https://github.com/SliverHorn)
|
|
// @object: *Qiniu
|
|
// @function: qiniuConfig
|
|
// @description: 根据配置文件进行返回七牛云的配置
|
|
// @return: *storage.Config
|
|
|
|
// func qiniuConfig() *storage.Config {
|
|
// cfg := storage.Config{
|
|
// UseHTTPS: global.GVA_CONFIG.Qiniu.UseHTTPS,
|
|
// UseCdnDomains: global.GVA_CONFIG.Qiniu.UseCdnDomains,
|
|
// }
|
|
// switch global.GVA_CONFIG.Qiniu.Zone { // 根据配置文件进行初始化空间对应的机房
|
|
// case "ZoneHuadong":
|
|
// cfg.Zone = &storage.ZoneHuadong
|
|
// case "ZoneHuabei":
|
|
// cfg.Zone = &storage.ZoneHuabei
|
|
// case "ZoneHuanan":
|
|
// cfg.Zone = &storage.ZoneHuanan
|
|
// case "ZoneBeimei":
|
|
// cfg.Zone = &storage.ZoneBeimei
|
|
// case "ZoneXinjiapo":
|
|
// cfg.Zone = &storage.ZoneXinjiapo
|
|
// }
|
|
// return &cfg
|
|
// }
|