celery-file-assistant结合多种平台的文件助手

联合创作 · 2023-09-30 00:27

File 助手 - 是一个自研实现的Spring Boot Stater。结合多种文件存储平台实现文件上传、下载、预览。

主要特性

  • 基于成熟包扩展,没有任何框架变动,只为简化开发使用
  • 配置简单灵活,无需复杂的配置文件:开发者配置模式后,统一方法实现上传、下载、预览

使用指引

引入依赖

implementation("cool.doudou:file-assistant:latest")

使用方式

上传文件大小,需要引入profiles:file
  • 单个文件:10MB
  • 总上传数据:50MB
spring:
  profiles:
    include: file
文件存储方式
  • local:存储在服务器本地
  • gridFS:存储在MongoDB的GridFS文件模块
  • aliYun:存储在阿里云OSS
  • monIO:存储在MonIO
file:
  storage-mode: local

属性配置

Local配置

file:
  local:
    path: /home/assets/file

GridFS配置

file:
  grid-fs:
    server-uri: mongodb://admin:1234.abcd@127.0.0.1:27017
    database: files
    bucket-name: default

AliYun配置

file:
  ali-yun:
    endpoint: https://oss-cn-hangzhou.aliyuncs.com
    access-key-id: admin
    access-key-secret: 1234.abcd
    bucket-name: default

MinIO配置

file:
  min-io:
    endpoint: http://127.0.0.1:9000
    access-key: admin
    secret-key: 1234.abcd
    bucket-name: default

方法说明

public interface FileHelper {
    /**
     * 上传
     *
     * @param file 文件
     * @return FileResult
     */
    FileResult upload(MultipartFile file);

    /**
     * 上传
     *
     * @param file     文件
     * @param category 类别
     * @return FileResult
     */
    FileResult upload(MultipartFile file, String category);

    /**
     * 下载
     *
     * @param key      键值
     * @param response 请求响应
     */
    void download(String key, HttpServletResponse response);

    /**
     * 下载
     *
     * @param key      键值
     * @param category 类别
     * @param response 请求响应
     */
    void download(String key, String category, HttpServletResponse response);

    /**
     * 预览
     *
     * @param key      键值
     * @param response 请求响应
     */
    void preview(String key, HttpServletResponse response);

    /**
     * 预览
     *
     * @param key      键值
     * @param category 类别
     * @param response 请求响应
     */
    void preview(String key, String category, HttpServletResponse response);

    /**
     * 删除
     *
     * @param key 键值
     * @return true-成功;false-失败
     */
    boolean delete(String key);

    /**
     * 删除
     *
     * @param key      键值
     * @param category 类别
     * @return true-成功;false-失败
     */
    boolean delete(String key, String category);
}
浏览 9
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报