阿里云oss存储
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mW46k62N-1660379389210)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220813110903588.png)]](https://i-blog.csdnimg.cn/blog_migrate/aa9151b3c509d5dc37697d2d9a5841e3.png)
获取设置参数
- bucket名
- endpoit
- key
- secret
package config
const (
OSSBucket = ""
OSSEndpoint = ""
OSSAccesskeyID = ""
OSSAcessKetSecret = ""
)
go get github.com/aliyun/aliyun-oss-go-sdk/oss
实现上传、下载方法
package oss
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
cfg "github.com/jyyds/filestore/config"
)
var ossCli *oss.Client
func Client() *oss.Client {
if ossCli != nil {
return ossCli
}
ossCli, err := oss.New(cfg.OSSEndpoint, cfg.OSSAccesskeyID, cfg.OSSAcessKetSecret)
if err != nil {
fmt.Println(err.Error())
return nil
}
return ossCli
}
func Bucket() *oss.Bucket {
cli := Client()
if cli != nil {
bucket, err := cli.Bucket(cfg.OSSBucket)
if err != nil {
fmt.Println(err.Error())
return nil
}
return bucket
}
return nil
}
func DownloadURL(objName string) string {
signedUrl, err := Bucket().SignURL(objName, oss.HTTPGet, 3600)
if err != nil {
fmt.Println(err.Error())
return ""
}
return signedUrl
}
设置生命周期
func BuildLifecycleRule(bucketName string) {
ruleTest1 := oss.BuildLifecycleRuleByDays("rule1", "test/", true, 30)
rules := []oss.LifecycleRule{ruleTest1}
Client().SetBucketLifecycle(bucketName, rules)
}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aio043Oj-1660379389211)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220813111447889.png)]](https://i-blog.csdnimg.cn/blog_migrate/003613d760c2cf4e06f287a87017e40c.png)
https://help.aliyun.com/document_detail/88601.html