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 }