溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Apache中如何使用 minIO

發(fā)布時間:2021-07-30 17:20:55 來源:億速云 閱讀:243 作者:Leah 欄目:大數(shù)據(jù)

本篇文章為大家展示了Apache中如何使用 minIO,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

docker啟動minio

在/home下創(chuàng)建minio的數(shù)據(jù)和配置目錄

啟動minio服務(wù)

docker run -d -p 9000:9000 --name minio  \
  --net=host \
  -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  -v /home/minio/data:/data
  -v /home/minio/config:/root/.minio \
  minio/minio server /data

--net暴露ip可以外部訪問

MINIO_ACCESS_KEY、MINIO_SECRET_KEY用于瀏覽器訪問服務(wù)的賬號和密碼

-v /home/minio/data:/data 用于掛載容器數(shù)據(jù)到宿主機 -v /home/minio/config:/root/.minio 用于掛載容器配置到宿主機

瀏覽器訪問minio

http://172.18.0.64:9000/

Apache中如何使用 minIO

api使用

安裝minio依賴

go get -u github.com/minio/minio-go

編寫測試用例

package main

import (
	"fmt"
	"github.com/minio/minio-go"
	"hydrogen.com/library/utils/log"
)

const (
	endpoint = "172.18.0.64:9000"
	accessKeyID = "AKIAIOSFODNN7EXAMPLE"
	secretAccessKey = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
	useSSL = false
)

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

	log.Infof("%s\n", minioClient) // minioClient初使化成功

	// 創(chuàng)建一個叫mymusic的存儲桶。
	bucketName := "hydrogen"
	location := "cn-north-1"

	err = minioClient.MakeBucket(bucketName, location)
	if err != nil {
		// 檢查存儲桶是否已經(jīng)存在。
		exists, err := minioClient.BucketExists(bucketName)
		if err == nil && exists {
			log.Infof("We already own %s\n", bucketName)
		} else {
			log.Fatal(err)
		}
	}
	log.Infof("Successfully created %s\n", bucketName)

	// 上傳一個zip文件。
	objectName := "iris.txt"
	filePath := "E:/iris.txt"
	contentType := "text/plain"

	// 使用FPutObject上傳一個zip文件。
	n, err := minioClient.FPutObject(bucketName, objectName, filePath, minio.PutObjectOptions{ContentType:contentType})
	if err != nil {
		log.Fatal(err)
	}

	log.Infof("Successfully uploaded %s of size %d\n", objectName, n)

}

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

	log.Infof("%s\n", minioClient) // minioClient初使化成功

	// 創(chuàng)建一個叫mymusic的存儲桶。
	bucketName := "hydrogen"
	objectName := "iris.txt"
	object, err := minioClient.GetObject(bucketName, objectName, minio.GetObjectOptions{})
	if err != nil {
		fmt.Println(err)
		return
	}
	log.Infof("%s\n", object)

}

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

	log.Infof("%s\n", minioClient) // minioClient初使化成功

	// 創(chuàng)建一個叫mymusic的存儲桶。
	bucketName := "hydrogen"
	objectName := "iris.txt"
	filePath := "E:/test/iris.txt"
	err = minioClient.FGetObject(bucketName, objectName, filePath, minio.GetObjectOptions{})
	if err != nil {
		fmt.Println(err)
		return
	}

}

func main() {
	//上傳
	upload()
	//下載到本地
	getFObject()

}

上述內(nèi)容就是Apache中如何使用 minIO,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI