安裝套件
安裝 minio-go
套件。
1
| go get github.com/minio/minio-go/v7
|
建立儲存貯體
使用 minio.New
函式建立連線,並使用 MakeBucket
函式建立儲存貯體。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| endpoint := "127.0.0.1:9000" accessKeyID := os.Getenv("MINIO_ACCESS_KEY") secretAccessKey := os.Getenv("MINIO_SECRET_KEY")
minioClient, err := minio.New(endpoint, &minio.Options{ Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""), Secure: false, })
if err != nil { log.Fatal(err) }
bucketName := "bucket" location := "us-east-1"
err = minioClient.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: location}) if err != nil { log.Fatal(err) }
|
存取檔案
使用 FPutObject
函式上傳檔案。
1 2 3 4 5 6 7 8 9 10 11 12
| bucketName := "bucket" objectName := "test.txt" filePath := "./test.txt" contentType := "text/plain"
info, err := minioClient.FPutObject(context.Background(), bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType}) if err != nil { log.Fatal(err) }
log.Printf("Successfully uploaded %s of size %d\n", objectName, info.Size)
|
使用 FGetObject
函式下載檔案。
1 2 3 4 5 6 7 8
| bucketName := "bucket" objectName := "test.txt" filePath := "./test.txt"
err = minioClient.FGetObject(context.Background(), bucketName, objectName, filePath, minio.GetObjectOptions{}) if err != nil { log.Fatal(err) }
|
參考資料