-e "MINIO_ACCESS_KEY=YOUR-ACCESSKEY"
-e "MINIO_SECRET_KEY=YOUR-SECRETKEY"
minio/minio server /data

其中,YOUR-ACCESSKEYYOUR-SECRETKEY是自定義的訪問密鑰和秘密密鑰,用于認證訪問MinIO服務。/data是MinIO用來存儲數據的目錄。

二進制包安裝

MinIO也提供了多平臺的二進制包,可以從MinIO官網下載對應系統的安裝包。下載后,解壓并按照官方文檔進行配置和啟動。

配置MinIO

在大多數情況下,通過Docker運行MinIO時,主要配置已經在docker run命令中通過環境變量設置好了。然而,如果你使用二進制包安裝,或者需要更復雜的配置(如多節點集群),則需要編輯配置文件或使用命令行參數進行配置。對于多節點集群,MinIO提供了分布式模式,允許你跨多個節點存儲數據,以實現更高的可用性和可擴展性。

使用MinIO

命令行工具

MinIO提供了一個名為mc的命令行工具,它提供了與MinIO交互的豐富功能,包括文件管理、桶(Bucket)管理、用戶管理等。安裝mc后,首先需要添加一個新的MinIO服務別名(alias),然后可以使用該別名執行各種操作。

mc alias set myminio http://localhost:9000 YOUR-ACCESSKEY YOUR-SECRETKEY

API接口

MinIO提供了完整的RESTful API接口,支持通過HTTP請求與MinIO進行交互。你可以使用任何支持HTTP請求的語言或工具(如curl、Postman、Python的requests庫等)來調用這些API。

客戶端庫

為了方便開發者集成MinIO,MinIO提供了多種編程語言的客戶端庫,如Java、Python、Go等。使用這些客戶端庫,你可以輕松地在你的應用程序中集成MinIO對象存儲功能。

總結

MinIO作為一個高性能、分布式的對象存儲系統,憑借其開源、易用和與Amazon S3兼容的特性,成為了云存儲和大數據領域的重要選擇。通過本文,您應該已經了解了MinIO的基本用法,包括安裝、配置和使用等基本步驟。希望這能幫助您更好地利用MinIO來存儲和管理您的數據。

MinIO使用示例

Amazon S3 對象存儲Java API操作記錄

引入依賴

如果您計劃通過Java程序來操作MinIO對象存儲,首先需要引入相關的依賴。

Maven:

    io.minio
minio
8.5.2

Gradle:

dependencies {
implementation("io.minio:minio:8.5.2")
}

初始化客戶端

接下來,您需要初始化MinIO客戶端。

private static final String HTTP_PROTOCOL = "http";
private MinioClient minioClient;
private String endpoint = "http://192.168.0.8:9200";
private String accessKey = "testKey";
private String secretKey = "testSecretKey";

public void init() throws MalformedURLException {
URL endpointUrl = new URL(endpoint);
try {
int port = endpointUrl.getPort() != -1 ? endpointUrl.getPort() : endpointUrl.getDefaultPort();
boolean security = HTTP_PROTOCOL.equals(endpointUrl.getProtocol()) ? false : true;
this.minioClient = MinioClient.builder().endpoint(endpointUrl.getHost(), port, security)
.credentials(accessKey, secretKey).build();
this.minioClient.ignoreCertCheck();
} catch (Exception e) {
e.printStackTrace();
}
}

建桶

public boolean createBucket(String bucket) {
try {
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

刪桶

public boolean deleteBucket(String bucket) {
try {
minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
logger.info("刪除桶[{}]成功", bucket);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

判斷桶是否存在

public boolean bucketExists(String bucket) {
try {
return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

上傳對象

提供兩個上傳方法,一個使用InputStream,另一個使用文件路徑。

public void upload(String bucket, String objectId, InputStream input) {
try {
minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(objectId)
.stream(input, input.available(), -1)
.build());
} catch (Exception e) {
e.printStackTrace();
}
}

下載對象

public InputStream download(String bucket, String objectId) {
try {
return minioClient.getObject(GetObjectArgs.builder().bucket(bucket).object(objectId).build());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

public void download(String bucket, String objectId, OutputStream output) {
try (InputStream input = minioClient.getObject(
GetObjectArgs.builder().bucket(bucket).object(objectId).build())) {
IOUtils.copyLarge(input, output);
} catch (Exception e) {
e.printStackTrace();
}
}

刪除對象

public boolean deleteObject(String bucket, String objectId) {
try {
minioClient.removeObject(RemoveObjectArgs.builder()
.bucket(bucket).object(objectId).build());
} catch (Exception e) {
e.printStackTrace();
}
return true;
}

判斷對象是否存在

public boolean objectExists(String bucket, String key) {
try {
minioClient.statObject(StatObjectArgs.builder()
.bucket(bucket).object(key).build());
} catch (Exception e) {
return false;
}
return true;
}

通過上面的示例代碼,您會發現MinIO的Java SDK提供了一套簡單易用的API來操作存儲對象。希望這些示例能幫助您更好地應用MinIO。

MinIO操作示例

FAQ

問:MinIO是什么,它的主要特點是什么?

問:如何使用Docker安裝MinIO?

docker run -p 9000:9000 --name minio-server 
-e "MINIO_ACCESS_KEY=YOUR-ACCESSKEY"
-e "MINIO_SECRET_KEY=YOUR-SECRETKEY"
minio/minio server /data

其中,YOUR-ACCESSKEYYOUR-SECRETKEY是自定義的訪問密鑰和秘密密鑰,用于認證訪問MinIO服務。/data是MinIO用來存儲數據的目錄。

問:MinIO是否有REST API?

問:如何在Java中通過MinIO的SDK進行對象存儲操作?

問:MinIO支持哪些編程語言的客戶端庫?

上一篇:

Linux上的MinIO對象存儲服務部署和使用指南

下一篇:

Jenkins拉取GitLab代碼的自動化部署配置指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費