1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package utils
- import (
- "fmt"
- "github.com/aliyun/aliyun-oss-go-sdk/oss"
- "time"
- )
- // UploadFile 上传文件
- func (m *AliyunService) UploadFile(fileName, filePath, savePath string) (resourceUrl string, err error) {
- bucket, errBucketExists := m.client.Bucket(Bucketname)
- if err != nil {
- err = fmt.Errorf("BucketExists: %v; err: %v", Bucketname, errBucketExists)
- FileLog.Error("BucketExists: %v; err: %v", Bucketname, errBucketExists)
- return
- }
- path := fmt.Sprintf("%s%s%s/%s", MinIoUploadDir, time.Now().Format("200601/20060102/"), savePath, fileName)
- if err != nil {
- FileLog.Error("MinIo上传文件失败:", err)
- return
- }
- err = bucket.PutObjectFromFile(path, filePath)
- if err != nil {
- FileLog.Error("Aliyun上传文件失败:", err)
- return
- }
- resourceUrl = Imghost + path
- return resourceUrl, err
- }
- func (m *AliyunService) Instance() OssClient {
- if AliyunClient == nil {
- aliyunOnce.Do(func() {
- if AccessKeyId == "" {
- FileLog.Warn("MinIo信息未配置,实例化客户端失败")
- return
- }
- client, err := oss.New(Endpoint, AccessKeyId, AccessKeySecret)
- if err != nil {
- FileLog.Error("Aliyun连接失败:", err)
- return
- }
- AliyunClient = &AliyunService{
- client: client,
- }
- })
- }
- return AliyunClient
- }
|