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 }