https://docs.min.io/docs/golang-client-quickstart-guide
https://blog.csdn.net/abao_gege/article/details/109576634
用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。
GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。
环境变量修改:
go 1.3版本之后,可以通过以下命令修改GO111MODULE:
go env -w GO111MODULE=on 或者 go env -w GO111MODULE=auto
在开启 GO111MODULE 之后就可以使用 go module 工具了,也就是说在以后的开发中就没有必要在 GOPATH 中创建项目了,并且还能够很好的管理项目依赖的第三方包信息。
目录结构:
FileUploader.go(官网案例,也是本博客的例子)
package main
import (
"context"
"log"
minio "github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
ctx := context.Background()
endpoint := "127.0.0.1:9000"
accessKeyID := "minioadmin"
secretAccessKey := "minioadmin"
useSSL := false
// Initialize minio client object.
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln(err)
}
// Make a new bucket called mymusic.
bucketName := "mymusic"
location := "us-east-1"
err = minioClient.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: location})
if err != nil {
// Check to see if we already own this bucket (which happens if you run this twice)
exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
if errBucketExists == nil && exists {
log.Printf("We already own %s\n", bucketName)
} else {
log.Fatalln(err)
}
} else {
log.Printf("Successfully created %s\n", bucketName)
}
// Upload the zip file
objectName := "test.zip"
filePath := "E:\test.zip"
contentType := "application/zip"
// Upload the zip file with FPutObject
n, err := minioClient.FPutObject(ctx, bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType})
if err != nil {
log.Fatalln(err)
}
log.Printf("Successfully uploaded %s of size %d\n", objectName, n)
}
项目中初始化的配置写法
// Initialize minio client object.
minioClient, err := minio.New(
endpoint,
&minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
1、配置GO111MODULE的参数,并下载minio
2、go_mod配置
此时生成两个文件go.mod和go.sum
方法1:命令行启动
docker run -p 9000:9000 -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" minio/minio server /data
注:
启动容器:docker start
停止容器:docker stop
方法2:docker-compose启动(建议)
参考博客:https://blog.csdn.net/weixin_45903371/article/details/114257758?spm=1001.2014.3001.5501
注:
minio数据库的设置
待上传的文件
使用git bash运行
注:.go程序运行结束后,minio浏览器端会有mymusic,且文件上传成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)