目录
1. minio 官网地址
2.需要环境 一台可以上网的 Linux 服务器
3. 在minion官网 找到 如图
4.访问 地址:http://ip:9000/
5.设置minio
后台启动
添加访问连接
minio获取的连接默认7天
minio设置永久连接 访问地址是:http://**:9000/文件路径
6. spring boot使用Minio
6.1添加jar
6.2创建连接 (admin123 后的false 是使用http请求)
6.3 创建bucket桶
6.4上传文件
https://docs.min.io/
中文文档:http://docs.minio.org.cn/docs/
Windows 上安装VMware 安装 Linux(centOS7)
wget https://dl.min.io/server/minio/release/linux-amd64/minio
这个时间比较久
等待下载完成
添加可执行权限 chmod +x minio
启动指定一个data目录 ./minio server /data 没有data创建目录 mkdir data
登录用户名:RootUser :minioadmin RootPass: minioadmin
设置服务器的9000的远程端口 或关闭防火墙
systemctl stop firewalld.service
就可以到登录界面了。
nohup ./minio server /data >./minio.log 2>&1 &
./mc config host add miniodev http://**:9000 admin admin123
minioClient.presignedGetObject("桶名称", "文件名称(包括子文件夹)", "int类型默认是秒")
这里的miniodev是上面添加连接 add 后的名称。
管理匿名访问存储桶和其内部内容的策略policy 有【none,download,upload.public】四个选项
#设置桶的访问策略
./mc policy set public miniodev/img
#设置桶的访问策略
./mc policy set public miniodev/img/hh
#清空桶的policy
./mc policy set none miniodev/img
io.minio
minio
7.0.2
MinioClient minioClient = new MinioClient("http://**",9000,
"admin", "admin123",false);
try {
// 如存储桶不存在,创建之。
boolean found = minioClient.bucketExists("mybucket");
if (found) {
System.out.println("mybucket already exists");
} else {
// 创建名为'my-bucketname'的存储桶。
minioClient.makeBucket("mybucket");
System.out.println("mybucket is created successfully");
}
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
}
方式一:file方式
//
minioClient.putObject("桶名称","文件名称", "C:\\home\\icon\\1.jpg",null(这个使用默认的contentType));
方式二:流方式
/**
* 通过InputStream 上传文件对象
* @param minioClient 连接
* @param bucketName 桶名称
* @param objName 文件名称
* @param stream 流文件
* @param contentType 文件类型
* @throws Exception
*/
public static void putObject(MinioClient minioClient, String bucketName, String objName, InputStream stream, String contentType) throws Exception{
//定义上传文件可选项
PutObjectOptions options = new PutObjectOptions(stream.available(),-1L);
options.setContentType(contentType);
minioClient.putObject(bucketName,objName,stream,options);
}
6.5 获取文件url 这里是获取7天内的文件连接,超过7天无法获取,并报异常
方式一:
/**
* 获取下载URL地址
* @param minioClient
* @param bucketName
* @param objName
* @param expires 小于等于7
* @throws Exception
*/
public static void presignedPutObject(MinioClient minioClient,String bucketName,String objName,Integer expires) throws Exception{
try {
String url = minioClient.presignedGetObject(bucketName, objName, 60 * 60 * 24*expires);
System.out.println(url);
} catch(MinioException e) {
System.out.println("Error occurred: " + e);
}
}
方式二:是设置 桶的policy的策略,然后使用http://**:9000/文件路径访问