package file_server import ( "errors" "log" "sync" ) var ErrMinioInit = errors.New("MINIO初始化失败") var ( minioServerPool *sync.Pool defaultFileBucket = "file" defaultIconBucket = "icon" defaultLocation = "us-east-1" ) var defaultConfig = &MinioConfig{ EndPoint: "114.116.19.14:9000", AccessKey: "root", SecretKey: "Houyaf1!", UseSSL: false, } func init() { minioServerPool = &sync.Pool{ New: func() interface{} { return &MinioServe{} }, } } type DestFile struct { FileName string FileUrl string FileSize int64 FileExt string FileMimeType string } func acquireMinioServer() *MinioServe { return minioServerPool.Get().(*MinioServe) } func releaseMinioServer(m *MinioServe) { m.Reset() minioServerPool.Put(m) } func UploadFileToMinio(fileName, filePath string) (*DestFile, error) { m := acquireMinioServer() client, err := defaultConfig.getClient() if err != nil { log.Fatal(ErrMinioInit) return nil, err } defer func() { releaseMinioServer(m) }() m.Client = client return m.uploadFile(fileName, filePath) }