在本地运行的minio服务器上执行功能的API调用都不能工作
以下是我如何连接到服务器并列出桶
// Use a secure connection.
ssl := false
// Initialize minio client object.
minioClient, err := minio.New("localhost:9000", "minioadmin", "minioadmin", ssl)
if err != nil {
fmt.Println(err)
return
}
err = minioClient.MakeBucket("testlalabucket", "")
fmt.Println(err)
抛出错误
[] XML syntax error on line 10: element <link> closed by </head>
使用CLI与minio服务器通信:
➜ ~ mc ls localminio
mc: <ERROR> Unable to list folder. XML syntax error on line 10: element <link> closed by </head>
进行另一项操作(制造铲斗(
mc: <ERROR> Unable to make bucket `localminio/mylalabucket`. The specified bucket does not exist.
(1) mb-main.go:145 cmd.mainMakeBucket(..) Tags: [localminio/mylalabucket]
(0) client-s3.go:1120 cmd.(*s3Client).MakeBucket(..)
我可以访问minio服务器的UI来执行所有这些操作,但不能通过API来执行。
可能SDK版本与服务器版本不匹配。以下是一个完整的工作示例:
-
在docker 中启动服务器
docker run -p 9000:9000 minio/minio:RELEASE.2020-02-27T00-23-05Z server /data
-
按以下创建
test.go
文件package main import ( "log" "github.com/minio/minio-go/v6" ) func main() { endpoint := "localhost:9000" accessKeyID := "minioadmin" secretAccessKey := "minioadmin" useSSL := false // Initialize minio client object. minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL) if err != nil { log.Fatalln(err) } bucketName := "testlalabucket" err = minioClient.MakeBucket(bucketName, "") if err != nil { // Check to see if we already own this bucket (which happens if you run this twice) exists, errBucketExists := minioClient.BucketExists(bucketName) if errBucketExists == nil && exists { log.Printf("We already own %sn", bucketName) } else { log.Fatalln(err) } } buckets, err := minioClient.ListBuckets() if err != nil { log.Fatalln(err) } for _, bucket := range buckets { log.Println(bucket) } }
-
运行
GO111MODULE=on go run test.go