MinioGolangSDK使用学习2

使用GolangSDK从Minio服务端下载文件

有两个文件下载的API可以使用

  • GetObject(bucketName, objectName string, opts GetObjectOptions) (*Object, error)
  • FGetObject(bucketName, objectName, filePath string, opts GetObjectOptions) error
    区别是前者前者返回文件流,后者直接通过路径保存文件,按实际需求使用既可。

初始化客户端

	endpoint := "127.0.0.1:9000"
	accessKeyID := "minioroot"
	secretAccessKey := "minio123456"
	useSSL := false

	// 初使化 minio client对象。
	minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL)
	if err != nil {
		log.Fatalln(err)
	}

	log.Printf("%#v\n", minioClient) // minioClient初使化成功

	// 创建一个叫mymusic的存储桶。
	bucketName := "mymusic"

方法1:GetObject

第一个参数是桶名,第二个参数是对象名,第三个参数是额外GET请求参数。
返回文件流与error。

	//下载文件
	object, err := minioClient.GetObject(bucketName, "[雲呑めお] おかえり [中国翻訳] [DL版].zip", minio.GetObjectOptions{})
	if err != nil {
		fmt.Println(err)
		return
	}
	localFile, err := os.Create("./tmp/[雲呑めお] おかえり [中国翻訳] [DL版].zip")
	if err != nil {
		fmt.Println(err)
		return
	}
	if _, err = io.Copy(localFile, object); err != nil {
		fmt.Println(err)
		return
	}

方法2:FGetObject

直接通过路径保存文件。
第一个参数是桶名,第二个参数是对象名,第三个参数是保存路径,第四个参数是额外GET请求参数。
返回error。

err = minioClient.FGetObject(bucketName, "[雲呑めお] おかえり [中国翻訳] [DL版].zip",  "/tmp/[雲呑めお] おかえり [中国翻訳] [DL版].zip", minio.GetObjectOptions{})
if err != nil {
    fmt.Println(err)
    return
}

小技巧

若要下载桶中文件夹中的文件,在对象名前加 文件夹名/ 作为前缀即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值