fine-file模块
- 文件模块:集成本地文件、minio、支持扩展的文件上传下载功能模块
依赖
- pom.xml
xml
<!--fine-file-->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-file</artifactId>
<version>${fine.version}</version>
</dependency>配置
- src/main/resources/application.yml
yaml
# 使用data配置
springdoc:
# openapi分组
group-configs:
- group: '文件管理'
paths-to-match: '/**'
packages-to-scan: cn.finemap.file
fine:
file:
# 存储类型: local | minio
type: local # 本地存储:local(默认)
# 本地存储配置
local: # 默认路径:{fpkpath}/data/folder
# minio配置
minio:
endpoint: http://192.168.3.68:9000 # 链接
accessKey: root
secretKey: finemap@cn
bucketName: fine # 存储桶创建子模块:fine-file
- 在fine-parent中创建:fine-file子模块
fine-file
- 创建子模块:New > Module...
- 添加短信依赖
依赖
- fine-file/pom.xml
xml
<!-- 依赖 -->
<dependencies>
<!--fine-boot-->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-boot</artifactId>
<version>${fine.version}</version>
<optional>true</optional>
</dependency>
<!-- fine-commons -->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-commons</artifactId>
<version>${fine.version}</version>
<optional>true</optional>
</dependency>
<!-- fine-logs -->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-logs</artifactId>
<version>${fine.version}</version>
<optional>true</optional>
</dependency>
<!-- fine-auth -->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-auth</artifactId>
<version>${fine.version}</version>
<optional>true</optional>
</dependency>
<!-- fine-doc -->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-doc</artifactId>
<version>${fine.version}</version>
<optional>true</optional>
</dependency>
<!-- minio -->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.7</version>
</dependency>
</dependencies>fine-file使用
服务调用
文件服务
java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 上传文件接口
public void createFile(){
boolean isForce = false //是否强制上传 默认为false
//创建空文件
Result<String> createFileResult = fileService.createFile("base/data", "data.json", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 上传文件接口
public void uploadFile(){
File file = new File("/xxx/xxx.png");
boolean isForce = false //是否强制上传 默认为false
//将文件上传至当前应用的base/logo目录下并命名为logo.png 不传为原始文件名
Result uploadFileResult = fileService.uploadFile(file, "base/logo", "logo.png",isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 上传对象接口
public void uploadFile(){
boolean isForce = false //是否强制上传 默认为false
//将文件上传至当前应用的base/data目录下并命名为data.json
Result uploadFileResult = fileService.uploadFile("{"age":"10"}", "base/data", "data.json", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 上传对象接口
public void uploadFile(){
boolean isForce = false //是否强制上传 默认为false
JSONObject jsonObject = new JSONObject();
//将文件上传至当前应用的base/data目录下并命名为data.json
Result uploadFileResult = fileService.uploadFile(jsonObject, "base/data", "data.json", isForce);
JSONArray jsonArray = new JSONArray();
//将文件上传至当前应用的base/data目录下并命名为data.json
Result uploadFileResult = fileService.uploadFile(jsonArray, "base/data", "data.json", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 上传对象接口
public void uploadFile(){
boolean isForce = false //是否强制上传 默认为false
String str = "Hello World!";
//将文件上传至当前应用的base/data目录下并命名为data.txt
Result uploadFileResult = fileService.uploadFile(str, "base/data", "data.txt", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 上传对象接口
public void uploadFile(){
byte[] data = new Byte[1024];
boolean isForce = false //是否强制上传 默认为false
//将文件上传至当前应用的base/data目录下并命名为data.xlsx
Result uploadFileResult = fileService.uploadFile(data, "base/data", "data.xlsx",isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 获取文件接口
public void getFileInputStream(){
//获取当前应用下base/logo目录下的logo.png的输入流
InputStream fileInputStream = fileService.getFileInputStream( "base/logo", "logo.png");
//fileInputStream为空 文件不存在或不可读
if(fileInputStream == null) return new Result(ResultCodes.ERROR, ResultCodes.ERROR_STRING, "文件不存在或不可读.");
//处理完成后必须关闭流 否则会占用系统资源
fileInputStream.close();
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 获取文件接口
public void getJson(){
//获取当前应用下base/data目录下的data.json文件
JSONObject jsonObject = fileService.getJsonObject("base/data", "data.json");
//获取当前应用下base/data目录下的data.json文件
JSONArray jsonArray = fileService.getJsonArray("base/data", "data.json");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 获取文件接口
public void getByte(){
//获取当前应用下base/data目录下的data.json文件
byte[] bytes = fileService.getByte("base/data", "data.json");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 获取文件接口
public void getString(){
//获取当前应用下base/data目录下的data.txt文件
String str = fileService.getString("base/data", "data.txt");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FileService fileService;
// 删除文件接口
public void delFile(){
//删除当前应用base/logo目录下的logo.png文件
Result<String> delFileResult = fileService.delFile( "base/logo", "logo.png");
}
}文件夹服务
java
@Slf4j
@Service
public class TestService {
@Autowired
private FolderService folderService;
// 添加文件夹接口
public void addfolder(){
//在当前应用base目录下创建logo文件夹
Result<String> addfolderResult = folderService.addfolder("base", "logo");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FolderService folderService;
// 删除文件夹接口
public void delFolder(){
boolean isForce = false //是否强制删除 默认为false
//删除当前应用base目录下logo文件夹
Result<String> delFolderResult = folderService.delFolder("base", "logo",isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private FolderService folderService;
// 获取文件夹路径接口
public void getFolderList(){
String matching = "漫游路线"; //模糊匹配返回文件信息
//获取当前应用base/logo目录下的所有文件信息
Result<ArrayList<FileVo>> FileListResult = folderService.getFolderList( "base/logo", matching);
}
}临时文件服务
java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传文件接口
public void createFile(){
boolean isForce = false //是否强制上传 默认为false
//在本地临时文件夹中创建空文件
Result<String> createFileResult = tempFileService.createFile("base/data", "data.json", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传文件接口
public void getFile(){
//获取临时文件夹的文件
Result<File> FileResult = tempFileService.getFile("base/data", "data.json");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传文件接口
public void uploadFile(){
File file = new File("/xxx/xxx.png");
boolean isForce = false //是否强制上传 默认为false
//将文件上传至本地临时文件夹的base/logo目录下并命名为logo.png 不传为原始文件名
Result<String> uploadFileResult = tempFileService.uploadFile(file, "base/logo", "logo.png",isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传对象接口
public void uploadFile(){
boolean isForce = false //是否强制上传 默认为false
//将文件上传至本地临时文件夹的base/data目录下并命名为data.json
Result<String> uploadFileResult = tempFileService.uploadFile("{"age":"10"}", "base/data", "data.json", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传对象接口
public void uploadFile(){
boolean isForce = false //是否强制上传 默认为false
JSONObject jsonObject = new JSONObject();
//将文件上传至本地临时文件夹的base/data目录下并命名为data.json
Result<String> uploadFileResult = tempFileService.uploadFile(jsonObject, "base/data", "data.json", isForce);
JSONArray jsonArray = new JSONArray();
//将文件上传至本地临时文件夹的base/data目录下并命名为data.json
Result<String> uploadFileResult = tempFileService.uploadFile(jsonArray, "base/data", "data.json", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传对象接口
public void uploadFile(){
boolean isForce = false //是否强制上传 默认为false
String str = "Hello World!";
//将文件上传至本地临时文件夹的base/data目录下并命名为data.txt
Result<String> uploadFileResult = tempFileService.uploadFile(str, "base/data", "data.txt", isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 上传对象接口
public void uploadFile(){
byte[] data = new Byte[1024];
boolean isForce = false //是否强制上传 默认为false
//将文件上传至本地临时文件夹的base/data目录下并命名为data.xlsx
Result<String> uploadFileResult = tempFileService.uploadFile(data, "base/data", "data.xlsx",isForce);
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 获取文件接口
public void getFileInputStream(){
//获取当前临时文件夹下base/logo目录下的logo.png的输入流
InputStream fileInputStream = tempFileService.getFileInputStream( "base/logo", "logo.png");
//fileInputStream为空 文件不存在或不可读
if(fileInputStream == null) return new Result(ResultCodes.ERROR, ResultCodes.ERROR_STRING, "文件不存在或不可读.");
//处理完成后必须关闭流 否则会占用系统资源
fileInputStream.close();
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 获取文件接口
public void getJson(){
//获取当前本地临时文件夹下base/data目录下的data.json文件
JSONObject jsonObject = tempFileService.getJsonObject("base/data", "data.json");
JSONArray jsonArray = tempFileService.getJsonArray("base/data", "data.json");
//jsonArray为空 文件不存在或不可读
if(jsonArray == null) return new Result(ResultCodes.ERROR, ResultCodes.ERROR_STRING, "文件不存在或不可读.");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 获取文件接口
public void getByte(){
//获取当前本地临时文件夹下base/data目录下的data.json文件
byte[] bytes = tempFileService.getByte("base/data", "data.json");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 获取文件接口
public void getString(){
//获取当前本地临时文件夹下base/data目录下的data.txt文件
String str = tempFileService.getString("base/data", "data.txt");
}
}java
@Slf4j
@Service
public class TestService {
@Autowired
private TempFileService tempFileService;
// 删除文件接口
public void delFile(){
//删除当前本地临时文件夹的base/logo目录下的logo.png文件
Result<String> delFileResult = tempFileService.delFile( "base/logo", "logo.png");
}
}