Files
likeadmin_go/server/plugin/storageAliyun.go
echobool 3cfc3bb99f 完善了代码生成 字段编辑时保存
增加了 存储配置  阿里云oss  腾讯云cos 七牛云 kodo 文件上传和删除
2023-11-24 00:59:28 +08:00

57 lines
1.2 KiB
Go

package plugin
import (
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"likeadmin/core"
"likeadmin/core/response"
"likeadmin/util"
"mime/multipart"
"path"
)
var AliYunOss = aliYunOss{}
type aliYunOss struct{}
func (ali aliYunOss) initOssClient() (bucket *oss.Bucket, err error) {
conf := util.SettingUtil.GetStorageEngineConf("aliyun")
client, err := oss.New(conf.Endpoint, conf.AccessKey, conf.SecretKey)
if err != nil {
core.Logger.Errorf("storageDriver.aliyunUpload Open err: err=[%+v]", err)
return nil, response.Failed.Make("OSS 初始化阿里云失败!")
}
// 获取存储空间。
bucket, err = client.Bucket(conf.Bucket)
return
}
func (ali aliYunOss) Upload(file *multipart.FileHeader, key string, folder string) (err error) {
bucket, err := ali.initOssClient()
if err != nil {
return
}
objectName := path.Join(folder, key)
// 读取文件流
src, err := file.Open()
if err != nil {
return
}
defer src.Close()
err = bucket.PutObject(objectName, src)
return
}
func (ali aliYunOss) Delete(objectName string) (err error) {
bucket, err := ali.initOssClient()
if err != nil {
return
}
err = bucket.DeleteObject(objectName)
return
}