Golang MinIO 图片存储示例:完整代码和详细步骤
以下是使用 Golang 存储一张图片到 MinIO 的示例代码:
package main
import (
"context"
"fmt"
"io/ioutil"
"log"
"net/http"
"strings"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
// 创建 MinIO 客户端
endpoint := "minio.example.com"
accessKeyID := "ACCESS_KEY_ID"
secretAccessKey := "SECRET_ACCESS_KEY"
useSSL := true
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln(err)
}
// 下载图片
url := 'https://cj.jj20.com/2020/down.html?picurl=/up/allimg/1114/040221103339/210402103339-7.jpg'
resp, err := http.Get(url)
if err != nil {
log.Fatalln(err)
}
defer resp.Body.Close()
// 读取图片数据
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
// 存储图片到 MinIO
bucketName := "my-bucket"
objectName := "example.jpg"
contentType := http.DetectContentType(data)
_, err = minioClient.PutObject(context.Background(), bucketName, objectName, strings.NewReader(string(data)), int64(len(data)), minio.PutObjectOptions{
ContentType: contentType,
})
if err != nil {
log.Fatalln(err)
}
fmt.Println("Image stored successfully")
}
在上面的代码中,我们首先创建了一个 MinIO 客户端,然后使用 http 包下载了图片数据。接着,我们使用 MinIO 客户端的 PutObject 方法将图片存储到 MinIO 中。在 PutObject 方法中,我们需要指定要存储的存储桶名称、对象名称、图片数据、数据长度和 Content-Type 等信息。如果操作成功,PutObject 方法将返回一个 minio.ObjectInfo 对象。
原文地址: https://www.cveoy.top/t/topic/jEWr 著作权归作者所有。请勿转载和采集!