go调用minio上传文件

发布时间 2023-06-13 17:45:00作者: lukeme
 1 package main
 2 
 3 import (
 4     "context"
 5     "fmt"
 6     "log"
 7     "os"
 8 
 9     "github.com/minio/minio-go/v7"
10     "github.com/minio/minio-go/v7/pkg/credentials"
11 )
12 
13 func main() {
14     endpoint := "192.168.1.180:9000"                              // Minio服务器的endpoint
15     accessKeyID := "0jvCjuYVYKBFHQ2iZNre"                         // Minio服务器的Access Key
16     secretAccessKey := "mCmXYyaShgjHRf23nvUYzXbERQQXLSTZZpJVPXfK" // Minio服务器的Secret Key
17     useSSL := false                                               // 是否使用SSL连接
18 
19     // 初始化Minio客戶端
20     minioClient, err := minio.New(endpoint, &minio.Options{
21         Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
22         Secure: useSSL,
23     })
24     if err != nil {
25         log.Fatalln(err)
26     }
27 
28     // 设定上传件的bucket和object名称,以及本地文件路径
29     bucketName := "test"
30     objectName := "images"
31     filePath := "C:\\Users\\Administrator\\Pictures\\book.jpg"
32 
33     // 打开本地文件并获取文件信息
34     file, err := os.Open(filePath)
35     if err != nil {
36         log.Fatalln(err)
37     }
38     defer file.Close()
39     fileInfo, err := file.Stat()
40     if err != nil {
41         log.Fatalln(err)
42     }
43 
44     // 建立一個上传对象
45     _, err = minioClient.PutObject(
46         context.Background(),
47         // 上传对象的bucket和object名称
48         bucketName,
49         objectName,
50         // 上传对象的內容
51         file,
52         // 上傳对象的大小
53         fileInfo.Size(),
54         // 上传对象的MIME类別
55         minio.PutObjectOptions{ContentType: "image/jpeg"},
56     )
57     if err != nil {
58         log.Fatalln(err)
59     }
60 
61     fmt.Println("File uploaded successfully")
62 }