安装步骤参考如下两个博客 一个参考了下载,一个参考了启动 minio 有web控制面板 可以参考如下链接 自己看看就明白了
安装minio相较于fastdfs简单太多了
https://www.jianshu.com/p/bdc...
https://blog.csdn.net/qq_3777...
springboot代码示例是从gitee上拉取的,看一下就明白了没必要自己写
https://gitee.com/shenzhanwan...
在这里只做一个简单的记录,避免自己忘记,如果能帮助到有需要的人更好了
minio在Ubuntu 20.04.3 LTS下的安装
下载服务端、客户端
guochuang@guochuang-ubuntu-1:/usr/local$ sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio && chmod +x /usr/local/bin/minio
guochuang@guochuang-ubuntu-1:/usr/local/bin$ sudo chmod +x ./minio
创建文件存储目录
guochuang@guochuang-ubuntu-1:/usr/local/bin$ sudo mkdir minio_data
指定文件存储目录并启动 此方式启动 关闭窗口 进程也会关闭 其他方式自己百度,再次不做过多介绍
guochuang@guochuang-ubuntu-1:/usr/local/bin$ sudo ./minio server ./minio_data/ --console-address '0.0.0.0:9999'
集成springboot使用
pom
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.0</version>
</dependency>
yml
server:
port: 8080
logging:
config: classpath:log4j2.xml
spring:
servlet:
multipart:
max-file-size: 100000MB
max-request-size: 100000MB
#minio配置
minio:
url: http://192.168.114.128:9000/ #对象存储服务的URL
accessKey: minioadmin #Access key账户
secretKey: minioadmin #Secret key密码
操作minio的工具类
package boot.spring.util;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import boot.spring.domain.Fileinfo;
import io.minio.BucketExistsArgs;
import io.minio.GetObjectArgs;
import io.minio.ListObjectsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.RemoveBucketArgs;
import io.minio.RemoveObjectArgs;
import io.minio.Result;
import io.minio.messages.Bucket;
import io.minio.messages.Item;
@Component
public class MinioUtil {
@Autowired
private MinioClient minioClient;
/**
* 创建一个桶
*/
public void createBucket(String bucket) throws Exception {
boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
if (!found) {
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
}
}
/**
* 上传一个文件
*/
public void uploadFile(InputStream stream, String bucket, String objectName) throws Exception {
minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(objectName)
.stream(stream, -1, 10485760).build());
}
/**
* 列出所有的桶
*/
public List<String> listBuckets() throws Exception {
List<Bucket> list = minioClient.listBuckets();
List<String> names = new ArrayList<>();
list.forEach(b -> {
names.add(b.name());
});
return names;
}
/**
* 列出一个桶中的所有文件和目录
*/
public List<Fileinfo> listFiles(String bucket) throws Exception {
Iterable<Result<Item>> results = minioClient.listObjects(
ListObjectsArgs.builder().bucket(bucket).recursive(true).build());
List<Fileinfo> infos = new ArrayList<>();
results.forEach(r->{
Fileinfo info = new Fileinfo();
try {
Item item = r.get();
info.setFilename(item.objectName());
info.setDirectory(item.isDir());
infos.add(info);
} catch (Exception e) {
e.printStackTrace();
}
});
return infos;
}
/**
* 下载一个文件
*/
public InputStream download(String bucket, String objectName) throws Exception {
InputStream stream = minioClient.getObject(
GetObjectArgs.builder().bucket(bucket).object(objectName).build());
return stream;
}
/**
* 删除一个桶
*/
public void deleteBucket(String bucket) throws Exception {
minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
}
/**
* 删除一个对象
*/
public void deleteObject(String bucket, String objectName) throws Exception {
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(objectName).build());
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。