分布式对象存储MinIO Sdk的使用

释放双眼,带上耳机,听听看~!

# 分布式对象存储 MinIO Sdk 的使用

本文介绍开源的分布式对象存储 MinIO Sdk 的使用。对象存储系统相比于传统的 NAS 文件系统有很多的优势,访问效率高、方便扩容,支持分布式等特性。MinIO 基于 Goland 开发,所以部署非常方便。

MinIO 服务的搭建步骤请前往搭建分布式对象存储服务 MinIO-单点模式

注意:
官方的中文文档内容更新不及时,导致演示代码错误,请切换为英文官网。

# 1. Golang sdk

# 1.1 demo 代码

package test

import (
	"context"
	"github.com/minio/minio-go/v7/pkg/credentials"
	"log"
	"testing"
	"github.com/minio/minio-go/v7"
)

/**
@author 王世彪
	个人博客: https://sofineday.com?from=apiproject
	微信: 645102170
	QQ: 645102170
*/

/**
测试MinIO对象存储服务的sdk
 */
func TestMinIO(t *testing.T) {
	ctx := context.Background()
	endpoint := "172.18.100.177: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 %sn", bucketName)
		} else {
			log.Fatalln(err)
		}
	} else {
		log.Printf("Successfully created %sn", bucketName)
	}

	// Upload the zip file
	objectName := "百事可乐的视频1"
	filePath := "/home/wangshibiao/test/百事可乐创意广告恶搞伦敦路人.mp4"
	contentType := "video/mpeg4"

	// 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.Println(n)

	log.Printf("Successfully uploaded %sn", objectName)
}

# 1.2 效果

  • 通过后台管理查看
    分布式对象存储MinIO Sdk的使用插图

  • 通过客户端 mc 查看

/ # mc ls minio/mymusic
[2020-10-30 02:23:28 UTC]  14MiB 百事可乐的视频1
/ #

文章来源于互联网:
分布式对象存储MinIO Sdk的使用

人已赞赏
学习笔记技术杂烩杂七杂八

搭建分布式对象存储服务MinIO-单点模式

2020-10-30 19:34:23

学习笔记技术杂烩杂七杂八

GoFrame的gf-demos教程

2020-10-30 19:34:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索