minio资源文件的下载
minio服务器得到搭建十分简单,我们需要2个exe文件
官网上下载实在是太慢,给出我的百度下载地址
链接:https://pan.baidu.com/s/1c27qQqFYLs1LH4NzNgyhSA
提取码:n0jp
将下载的文件minio.exe和mc.exe放在一个文件夹下
打开cmd,进入本目录
执行 minio.exe server statuc 出现下列图片表示成功
打开,127.0.0.1::9000 出现minio的管理界面,登陆,上面的用户名和密码
到了这一步,文件服务器已经大好了,下一步是如何把文件服务器里的文件永久分享出来,让用户能够通过web浏览器访问和下载。
点击配置文件夹
添加访问权限 第一个空填 * ,
下一步,再打开一个cmd,进入本文件夹,使用 mc.exe配置永久访问权限
在输入 mc.exe policy set public minio/test -------test是我的文件夹名
ok,以上配置完成,在浏览器上访问图片
以上服务器算基本搭建完成,下面给出我写的一些java api;
maven依赖
<!--minio的集成-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.0.2</version>
</dependency>
```java
package com.minio.tools;
import io.minio.MinioClient;
import io.minio.PutObjectOptions;
import io.minio.errors.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @ClassName MinioTools
* @Author swj
* @Date 2020/6/12 14:55
*/
public class MinioTools {
private static String minioUrl;
private static String minioUserName;
private static String minioPassWord;
private MinioClient minioClient;
static{
minioUrl = 127.0.0.1:9000;
//上述出现的用户名密码
minioUserName = "minioadmin";
minioPassWord = "minioadmin";
}
/**
* 构造函数
*/
public MinioTools(){
minioClientInit();
}
/**
* 初始化minio的客户端
* @return
*/
private void minioClientInit() {
MinioClient newMinioClient = null;
try {
newMinioClient = new MinioClient(minioUrl,minioUserName,minioPassWord);
} catch (InvalidEndpointException e) {
e.printStackTrace();
} catch (InvalidPortException e) {
e.printStackTrace();
}
this.minioClient = newMinioClient;
}
/**
* 创建文佳夹
* @param path 传入文件夹路径
*/
public void createDir(String path) throws IOException, InvalidKeyException, InvalidResponseException, InsufficientDataException, NoSuchAlgorithmException, InternalException, XmlParserException, InvalidBucketNameException, ErrorResponseException, RegionConflictException {
boolean isExist = minioClient.bucketExists(path);
if(!isExist){
minioClient.makeBucket(path);
}
}
/**
* 文件上传
* @param file web上传文件接收的参数
* @param path 文件路径
* @return
*/
public String uploadFile(MultipartFile file,String path) {
try {
InputStream in = file.getInputStream();
String fileName = generalFileName(file.getOriginalFilename());
minioClient.putObject(path,fileName,in,new PutObjectOptions(in.available(),-1));
return minioUrl+"/"+path+"/"+fileName;
} catch (Exception e) {
e.printStackTrace();
return "false";
}
}
/**
* 文件删除
* @param fileName 文件名
* @param path 目录名
* @return
*/
public Boolean deleteFile(String fileName,String path){
try{
minioClient.removeObject(path,fileName);
}catch (Exception e){
e.printStackTrace();
return false;
}
return true;
}
/**
* 文件下载,获取文件流
* @param fileName
* @param path
* @return
*/
public InputStream downloadFile(String fileName,String path){
InputStream in = null;
try{
in = minioClient.getObject(path,fileName);
}catch (Exception e){
e.printStackTrace();
}
return in;
}
/**
* 文件名的生成规则
* @param originalFilename
* @return
*/
private String generalFileName(String originalFilename){
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
String filename = df.format(dateTime)+originalFilename.replace("-","");
return filename;
}
}
minio搭建单机静态服务器end