首页 文章 精选 留言 我的

精选列表

搜索[工具库],共10000篇文章
优秀的个人博客,低调大师

X Spring File Storage 发布 v0.3.0 版本,Spring 文件存储

简介 在 SpringBoot 中通过简单的方式将文件存储到本地、阿里云OSS、华为云OBS、七牛云Kodo、腾讯云COS、百度云 BOS、又拍云USS、MinIO 后续即将支持 亚马逊S3、谷歌云存储、FTP、SFTP、WebDAV、Samba、NFS GitHub:https://github.com/1171736840/spring-file-storage Gitee:https://gitee.com/XYW1171736840/spring-file-storage 官网文档:https://spring-file-storage.xuyanwu.cn 更新日志 - 增加官网文档 - 增加下载进度监控 - 增加对动态添加删除存储平台和切面的支持 - 增加方法:直接判断文件是否存在的重载方法 - 修复下载进度监控对于下载结束判断错误的bug 使用说明 配置 pom.xml引入依赖 <dependencies> <!-- spring-file-storage 必须要引入 --> <dependency> <groupId>cn.xuyanwu</groupId> <artifactId>spring-file-storage</artifactId> <version>0.2.0</version> </dependency> <!-- 华为云 OBS 不使用的情况下可以不引入 --> <dependency> <groupId>com.huaweicloud</groupId> <artifactId>esdk-obs-java</artifactId> <version>3.20.6.1</version> </dependency> <!-- 阿里云 OSS 不使用的情况下可以不引入 --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.6.0</version> </dependency> <!-- 七牛云 Kodo 不使用的情况下可以不引入 --> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.4.0</version> </dependency> <!-- 腾讯云 COS 不使用的情况下可以不引入 --> <dependency> <groupId>com.qcloud</groupId> <artifactId>cos_api</artifactId> <version>5.6.38</version> </dependency> <!-- 百度云 BOS 不使用的情况下可以不引入 --> <dependency> <groupId>com.baidubce</groupId> <artifactId>bce-java-sdk</artifactId> <version>0.10.162</version> </dependency> <!-- 又拍云 USS 不使用的情况下可以不引入 --> <dependency> <groupId>com.upyun</groupId> <artifactId>java-sdk</artifactId> <version>4.2.2</version> </dependency> <!-- MinIO 不使用的情况下可以不引入 --> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.0.2</version> </dependency> </dependencies> application.yml配置文件中添加以下相关配置(不使用的平台可以不配置) spring: file-storage: #文件存储配置 default-platform: local-1 #默认使用的存储平台 thumbnail-suffix: ".min.jpg" #缩略图后缀,例如【.min.jpg】【.png】 local: # 本地存储,不使用的情况下可以不写 - platform: local-1 # 存储平台标识 enable-storage: true #启用存储 enable-access: true #启用访问(线上请使用 Nginx 配置,效率更高) domain: "" # 访问域名,例如:“http://127.0.0.1:8030/test/file/”,注意后面要和 path-patterns 保持一致,“/”结尾,本地存储建议使用相对路径,方便后期更换域名 base-path: D:/Temp/test/ # 存储地址 path-patterns: /test/file/** # 访问路径,开启 enable-access 后,通过此路径可以访问到上传的文件 huawei-obs: # 华为云 OBS ,不使用的情况下可以不写 - platform: huawei-obs-1 # 存储平台标识 enable-storage: false # 启用存储 access-key: ?? secret-key: ?? end-point: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:http://abc.obs.com/ base-path: hy/ # 基础路径 aliyun-oss: # 阿里云 OSS ,不使用的情况下可以不写 - platform: aliyun-oss-1 # 存储平台标识 enable-storage: false # 启用存储 access-key: ?? secret-key: ?? end-point: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.oss-cn-shanghai.aliyuncs.com/ base-path: hy/ # 基础路径 qiniu-kodo: # 七牛云 kodo ,不使用的情况下可以不写 - platform: qiniu-kodo-1 # 存储平台标识 enable-storage: false # 启用存储 access-key: ?? secret-key: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:http://abc.hn-bkt.clouddn.com/ base-path: base/ # 基础路径 tencent-cos: # 腾讯云 COS - platform: tencent-cos-1 # 存储平台标识 enable-storage: true # 启用存储 secret-id: ?? secret-key: ?? region: ?? #存仓库所在地域 bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.cos.ap-nanjing.myqcloud.com/ base-path: hy/ # 基础路径 baidu-bos: # 百度云 BOS - platform: baidu-bos-1 # 存储平台标识 enable-storage: true # 启用存储 access-key: ?? secret-key: ?? end-point: ?? # 例如 abc.fsh.bcebos.com bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.fsh.bcebos.com/abc/ base-path: hy/ # 基础路径 upyun-uss: # 又拍云 USS - platform: upyun-uss-1 # 存储平台标识 enable-storage: true # 启用存储 username: ?? password: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:http://abc.test.upcdn.net/ base-path: hy/ # 基础路径 minio: # MinIO - platform: minio-1 # 存储平台标识 enable-storage: true # 启用存储 access-key: ?? secret-key: ?? end-point: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:http://minio.abc.com/abc/ base-path: hy/ # 基础路径 注意配置每个平台前面都有个-号,通过以下方式可以配置多个 local: - platform: local-1 # 存储平台标识 enable-storage: true enable-access: true domain: "" base-path: D:/Temp/test/ path-patterns: /test/file/** - platform: local-2 # 存储平台标识,注意这里不能重复 enable-storage: true enable-access: true domain: "" base-path: D:/Temp/test2/ path-patterns: /test2/file/** 编码 在启动类上加上@EnableFileStorage注解 @EnableFileStorage @SpringBootApplication public class SpringFileStorageTestApplication { public static void main(String[] args) { SpringApplication.run(SpringFileStorageTestApplication.class, args); } } 开始使用 @RestController public class FileDetailController { @Autowired private FileStorageService fileStorageService;//注入实列 /** * 上传文件,成功返回文件 url */ @PostMapping("/upload") public String upload(MultipartFile file) { FileInfo fileInfo = fileStorageService.of(file) .setPath("upload/") //保存到相对路径下,为了方便管理,不需要可以不写 .setObjectId("0") //关联对象id,为了方便管理,不需要可以不写 .setObjectType("0") //关联对象类型,为了方便管理,不需要可以不写 .upload(); //将文件上传到对应地方 return fileInfo == null ? "上传失败!" : fileInfo.getUrl(); } /** * 上传图片,成功返回文件信息 * 图片处理使用的是 https://github.com/coobird/thumbnailator */ @PostMapping("/upload-image") public FileInfo uploadImage(MultipartFile file) { return fileStorageService.of(file) .image(img -> img.size(1000,1000)) //将图片大小调整到 1000*1000 .thumbnail(th -> th.size(200,200)) //再生成一张 200*200 的缩略图 .upload(); } /** * 上传文件到指定存储平台,成功返回文件信息 */ @PostMapping("/upload-platform") public FileInfo uploadPlatform(MultipartFile file) { return fileStorageService.of(file) .setPlatform("aliyun-oss-1") //使用指定的存储平台 .upload(); } } 如果还想使用除了保存文件之前的其它功能,例如删除、下载等功能可以查看详细的使用文档 GitHub:https://github.com/1171736840/spring-file-storage Gitee:https://gitee.com/XYW1171736840/spring-file-storage 官网文档:https://spring-file-storage.xuyanwu.cn

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册