1. Linux运行minio
linux安装包下载点
https://dl.minio.io/server/minio/release/linux-amd64/minio
如果linux系统能联网,可直接通过wget命令下载
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
进入minio文件所在位置,然后执行命令:
chmod +x minio
./minio server /mnt/data
minio服务启动成功。
后台运行
nohup /usr/local/bin/minio server /home/minio/data > /home/minio/data/minio.log 2>&1 &
自定义MINIO_ACCESS_KEY和MINIO_SECRET_KEY
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=miniostorage
2. windows运行minio
首先下载安装包,windows下载点
https://dl.minio.io/server/minio/release/windows-amd64/minio.exe
下载结束后,cmd命令行进入minio.exe所在文件夹,然后执行
minio.exe server F:\Data
minio服务启动成功,其中F:\Data可设置成读者本地磁盘任何位置。
3. minio使用
minio服务启动后,默认端口是9000,在命令界面会显示如下信息:
access-key: WHF2WW7QP2DWNQV7MQ63
secret-key: pM3u0Yp+avPuPqPnwu7v+4k4EmlJqQp3dDuNThtg
这些信息需要记住,在登录和项目配置时需要。
如此minio启动成功,然后访问http://127.0.0.1:9000,在登录页输入access-key和secret-key,可直接用浏览器操作minio服务器中的文件库与文件。
4. bigdata-common-minio使用
确认项目已经引入jar包
<dependency>
<groupId>com.bosssoft.bigdata</groupId>
<artifactId>bigdata-common-minio</artifactId>
</dependency>
配置文件中已经配置minio服务信息,如下:
minio:
url: http://127.0.0.1:9000
access-key: WHF2WW7QP2DWNQV7MQ63
secret-key: pM3u0Yp+avPuPqPnwu7v+4k4EmlJqQp3dDuNThtg
4.1 创建文件库(bucket)
a)可用浏览器登录http://127.0.0.1:9000,直接创建bucket
b)调用api
private final MinioTemplate template;
template.createBucket(bucketName);
4.2 图片上传
参考com.bosssoft.bigdata.common.minio.http.MinioEndpoint#
createObject(org.springframework.web.multipart.MultipartFile, java.lang.String, java.lang.String)
@PostMapping("/object/{bucketName}/{objectName}")
public MinioObject createObject(@RequestBody MultipartFile object, @PathVariable String bucketName, @PathVariable String objectName) {
template.putObject(bucketName, objectName, object.getInputStream(), object.getSize(), object.getContentType());
return new MinioObject(template.getObjectInfo(bucketName, objectName));
}
如果想保存url,参考
template.getObjectURL(bucketName, objectName, expires)
PS:也可以只保存MinioObject的name,以及相应的文件库(bucket)
4.3 图片显示
如果保存了url,直接显示即可;如果保存了MinioObject的name,以及相应的文件库(bucket)
,显示图片参考
com.bosssoft.bigdata.common.minio.http.MinioEndpoint#getObject
@GetMapping("/object/{bucketName}/{objectName}/{expires}")
public Map<String, Object> getObject(@PathVariable String bucketName, @PathVariable String objectName, @PathVariable Integer expires) {
Map<String, Object> responseBody = new HashMap<>(8);
// Put Object info
responseBody.put("bucket", bucketName);
responseBody.put("object", objectName);
responseBody.put("url", template.getObjectURL(bucketName, objectName, expires));
responseBody.put("expires", expires);
return responseBody;
}