Skip to content

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");

  }
}

API调用

文件管理(fine-file)

文件上传测试

文件上传

切片上传