gitee.com/h79/goutils@v1.22.10/common/file/alyoss/oss.go (about) 1 package alyoss 2 3 import ( 4 fileconfig "gitee.com/h79/goutils/common/file/config" 5 "github.com/aliyun/aliyun-oss-go-sdk/oss" 6 ) 7 8 type OssFile struct { 9 config fileconfig.Config 10 } 11 12 func NewOssFile(config fileconfig.Config) *OssFile { 13 return &OssFile{config: config} 14 } 15 16 func (of *OssFile) UploadFile(fileResult *fileconfig.Result, data *fileconfig.Base) error { 17 // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 18 client, err := oss.New(of.config.EndPoint, of.config.AccessKey, of.config.SecretKey) 19 if err != nil { 20 return err 21 } 22 23 bucket, err := client.Bucket(data.Bucket) 24 if err != nil { 25 return err 26 } 27 28 return of.FileUpload(fileResult, data, bucket) 29 } 30 31 // IsObjectExist 文件是否存在 32 func (of *OssFile) IsObjectExist(data *fileconfig.Base) (bool, error) { 33 34 // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 35 client, err := oss.New(of.config.EndPoint, of.config.AccessKey, of.config.SecretKey) 36 if err != nil { 37 return false, err 38 } 39 40 bucket, err := client.Bucket(data.Bucket) 41 if err != nil { 42 return false, err 43 } 44 return bucket.IsObjectExist(data.Key) 45 } 46 47 func (of *OssFile) UploadStream(fileResult *fileconfig.Result, data *fileconfig.Stream) error { 48 //传入osskey, 文件路径, oss路径 49 // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 50 client, err := oss.New(of.config.EndPoint, of.config.AccessKey, of.config.SecretKey) 51 if err != nil { 52 return err 53 } 54 55 bucket, err := client.Bucket(data.Bucket) 56 if err != nil { 57 return err 58 } 59 60 return of.StreamUpload(fileResult, data, bucket) 61 }