Skip to content

jiangchengshi/file-assistant

Repository files navigation

欢迎使用 File-Assistant

Maven License SpringBoot

简介

File助手 - 简化配置,注解带飞!

特点

配置灵活,基于GridFs||AliyunOSS||MiniIO包,没有改变任何框架结构,只为简化; 简单注解,即可实现文件操作

使用指引

引入依赖

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

使用方式

上传文件默认大小

  • 单个文件:1MB
  • 总上传数据:10MB
spring:
  servlet:
    multipart:
      # 设置单个文件大小
      max-file-size: 50MB
      # 设置总上传的数据大小
      max-request-size: 100MB

文件存储方式

  • local:存储在服务器本地
  • gridFS:存储在MongoDB的GridFS文件模块
  • aliYun:存储在阿里云OSS
  • monIO:存储在MonIO
file:
  storage-mode: local

属性配置

Local配置

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

GridFS配置

依赖spring自动注入MongoClient、GridFSBucket,配置属性如下:

implementation("org.mongodb:mongo-java-driver:3.12.11")
file:
  grid-fs:
    server-uri: mongodb://admin:1234.abcd@127.0.0.1:27017
    database: files
    bucket-name: default

AliYun配置

依赖spring自动注入OSS,配置如下:

implementation("com.aliyun.oss:aliyun-sdk-oss:3.14.0")
file:
  ali-yun:
    endpoint: https://oss-cn-hangzhou.aliyuncs.com
    access-key-id: admin
    access-key-secret: 1234.abcd
    bucket-name: default

MinIO配置

依赖spring自动注入MinioClient,配置属性如下:

implementation("io.minio:minio:8.4.3")
file:
  min-io:
    endpoint: http://127.0.0.1:9000
    access-key: admin
    secret-key: 1234.abcd
    bucket-name: default

方法说明

public interface FileHelper {
    /**
     * 上传
     *
     * @param multipartFile 表单格式文件
     * @return FileResult
     */
    FileResult upload(MultipartFile multipartFile);

    /**
     * 上传
     *
     * @param file 文件
     * @return FileResult
     */
    FileResult upload(File file);

    /**
     * 上传
     *
     * @param multipartFile 表单格式文件
     * @param category      类别
     * @return FileResult
     */
    FileResult upload(MultipartFile multipartFile, String category);

    /**
     * 上传
     *
     * @param file     文件
     * @param category 类别
     * @return FileResult
     */
    FileResult upload(File 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);
}

版权

Apache License 2.0

鼓励一下,喝杯咖啡

欢迎提出宝贵意见,不断完善 File-Assistant

鼓励一下,喝杯咖啡

About

文件助手(GridFs、AliyunOSS、MinIO)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages