MinIO
Minio是GlusterFS创始人之一Anand Babu Periasamy发布的开源项目。可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。
安装请参考官方文档
本文存在的原因是官方发布了新版SDK但是文档并没有同步更新,官方文档的SDK示例方法都已删除或过期
MinIO的SDK调用
截至目前最新版的依赖,官方发布时间为2020-9-6
io.minio
minio
7.1.2
package com.minio.service;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import io.minio.*;
import io.minio.http.Method;
public class Minio {
/**
* minio参数
*/
private static final String ENDPOINT = "http://127.0.0.1:9000";
private static final String ACCESS_KEY = "******";
private static final String SECRET_KEY = "******";
/**
* 桶占位符
*/
private static final String BUCKET_PARAM = "${bucket}";
/**
* bucket权限-只读
*/
private static final String READ_ONLY = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucket\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "\"]},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "/*\"]}]}";
/**
* bucket权限-只读
*/
private static final String WRITE_ONLY = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucketMultipartUploads\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "\"]},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3: