1 Star 0 Fork 0

刘彬/unioss

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
minio.go 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
刘彬 提交于 2023-03-29 11:36 +08:00 . 添加Minio文件上传
package unioss
import (
"errors"
"fmt"
"github.com/minio/minio-go"
"io"
)
type Minio struct {
config *Config
client *minio.Client
bucket string
}
func NewMinio(config Config) (*Minio, error) {
mini := Minio{}
err := mini.init(config)
if err != nil {
return nil, err
}
return &mini, nil
}
func (mini *Minio) init(config Config) error {
if mini.config == nil {
mini.config = &config
}
if config.Endpoint == "" {
return errors.New("AliYun configuration Endpoint is not correct")
}
if mini.client == nil {
client, err := minio.New(config.Endpoint, config.KeyId, config.KeySecret, config.UseSSL)
if err != nil {
return errors.New("minio Collection Failed")
}
mini.client = client
}
if mini.bucket == "" {
if config.Bucket == "" {
return errors.New("bucket Not specified")
}
mini.bucket = config.Bucket
}
return nil
}
// GetObjectToFile 获取文件
func (mini *Minio) GetObjectToFile(objectKey, filePath string) error {
return mini.client.FGetObject(mini.bucket, objectKey, filePath, minio.GetObjectOptions{})
}
// DeleteObject 删除文件
func (mini *Minio) DeleteObject(objectKey string) error {
return mini.client.RemoveObject(mini.bucket, objectKey)
}
func (mini *Minio) PutObject(objectKey string, reader io.Reader) error {
return errors.New("method is not support")
}
func (mini *Minio) PutObjectFromFile(objectKey, filePath string) error {
_, err := mini.client.FPutObject(mini.bucket, objectKey, filePath, minio.PutObjectOptions{})
return err
}
func (mini *Minio) IsExists(objectKey string) (bool, error) {
return false, errors.New("method is not support")
}
// GetObjectUrl 获取访问URL
func (mini *Minio) GetObjectUrl(objectKey string) string {
if mini.config.Domain == "" {
return fmt.Sprintf("http://%s/%s/%s",
mini.config.Endpoint,
mini.config.Bucket,
objectKey,
)
}
return fmt.Sprintf("https://%s/%s", mini.config.Domain, objectKey)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/liu_bin1101/unioss.git
git@gitee.com:liu_bin1101/unioss.git
liu_bin1101
unioss
unioss
v1.1.1

搜索帮助