以下是使用 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 对象。

Golang MinIO 图片存储示例:完整代码和详细步骤

原文地址: https://www.cveoy.top/t/topic/jEWr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录