Minio是GlusterFS創始人之一Anand Babu Periasamy發布新的開源項目。Minio兼容Amason的S3分布式對象存儲項目,采用Golang實現,客戶端支持Java,Python,Javacript, Golang語言。
Minio可以做為雲存儲的解決方案用來保存海量的圖片,視頻,文檔。由於采用Golang實現,服務端可以工作在Windows,Linux, OS X和FreeBSD上。配置簡單,基本是復制可執行程序,單行命令可以運行起來。
liunx上run起來服務
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
訪問地址:
http://127.0.0.1:9000/
默認賬號密碼:
minioadmin
minioadmin
代碼上傳圖片
pom.xml
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.1</version>
</dependency>
package com.wzq.demoftl.minio;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import io.minio.*;
import io.minio.errors.MinioException;
import io.minio.http.Method;
public class FileUploader {
public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException {
String endpoint = "http://192.168.60.133:9000";
String accessKey = "710K927ZQPHC2H7X9PUX";
String secretKey = "2pD0JF+WZWoroZBQsjgRwe0Ior7znDjc+rp2xJ6D";
try {
// Create a minioClient with the MinIO server playground, its access key and secret key.
MinioClient minioClient =
MinioClient.builder()
.endpoint(endpoint)
.credentials(accessKey,secretKey)
.build();
// Make 'asiatrip' bucket if not exist.
boolean found =
minioClient.bucketExists(BucketExistsArgs.builder().bucket("bucket1").build());
if (!found) {
// Make a new bucket called 'asiatrip'.
minioClient.makeBucket(MakeBucketArgs.builder().bucket("bucket1").build());
} else {
System.out.println("Bucket 'asiatrip' already exists.");
}
// Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
// 'asiatrip'.
ObjectWriteResponse bucket1 = minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("bucket1")
.object("1234.jpg")
.filename("C:\\Users\\honor-wzq\\Pictures\\123.jpg")
.build());
String bucket = bucket1.bucket();
String url =
minioClient.getPresignedObjectUrl(
GetPresignedObjectUrlArgs.builder()
.method(Method.GET)
.bucket("bucket1")
.object("1234.jpg")
.expiry(24 * 60 * 60)
.build());
System.out.println(url);
System.out.println(
"bucket : " + bucket);
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
System.out.println("HTTP trace: " + e.httpTrace());
}
}
}