登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
Gitee AI
NEW
我知道了
查看详情
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
1
Star
0
Fork
688
hero_no_fault
/
x-file-storage
forked from
dromara
/
x-file-storage
确定同步?
同步操作将从
dromara/x-file-storage
强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
删除在远程仓库中不存在的分支和标签
同步 Wiki
(当前仓库的 wiki 将会被覆盖!)
取消
确定
代码
Issues
0
Pull Requests
0
Wiki
统计
流水线
服务
Gitee Pages
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
我知道了,不再自动展开
标签
标签名
描述
提交信息
操作
v2.2.1
<h3 align="center"> <img src="https://x-file-storage.xuyanwu.cn/assets/logo.svg" height="200px" alt="logo"/><br /> <span>原名 X Spring File Storage 现已捐赠至 <a target="_blank" href="https://dromara.org/zh">dromara</a> 开源组织</span> </h3> <p align="center"> <a target="_blank" href="https://x-file-storage.dromara.org">x-file-storage.dromara.org</a> | <a target="_blank" href="https://x-file-storage.xuyanwu.cn">x-file-storage.xuyanwu.cn</a> | <a target="_blank" href="https://spring-file-storage.xuyanwu.cn">spring-file-storage.xuyanwu.cn</a> </p> <p align="center"> <a target="_blank" href="https://central.sonatype.com/search?q=org.dromara.x-file-storage"> <img src="https://img.shields.io/maven-central/v/org.dromara.x-file-storage/x-file-storage-core.svg?label=Maven%20Central" /> </a> <a target="_blank" href="https://www.apache.org/licenses/LICENSE-2.0"> <img src="https://img.shields.io/badge/license-Apache%202-green.svg" /> </a> <a target="_blank" href="https://www.oracle.com/technetwork/java/javase/downloads/index.html"> <img src="https://img.shields.io/badge/JDK-8+-blue.svg" /> </a> <a target="_blank" href='https://github.com/dromara/x-file-storage'> <img src="https://img.shields.io/github/stars/dromara/x-file-storage.svg?style=social" alt="github star"/> </a> <a href='https://gitee.com/dromara/x-file-storage'> <img src='https://gitee.com/dromara/x-file-storage/badge/star.svg?theme=dark' alt='star' /> </a> <br /> <a href='https://jq.qq.com/?_wv=1027&k=eGfeNqka'> <img src='https://img.shields.io/badge/QQ%E7%BE%A4-515706495-orange' alt='' /> </a> </p> # 📚简介 一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、百度云 BOS、又拍云 USS、MinIO、 Amazon S3、GoogleCloud Storage、FastDFS、 Azure Blob Storage、Cloudflare R2、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动 云EOS、沃云 OSS、网易数帆 NOS、Ucloud US3、青云 QingStor、平安云 OBS、首云 OSS、IBM COS、其它兼容 S3 协议的存储平台。查看 [所有支持的存储平台](https://x-file-storage.xuyanwu.cn/#/存储平台) 💡 通过 WebDAV 连接到 Alist 后,可以使用百度网盘、天翼云盘、阿里云盘、迅雷网盘等常见存储服务,查看 [Alist 支持的存储平台](https://alist-doc.nn.ci/docs/webdav) 🚚 支持在不同存储平台之间迁移文件,详情查看 [迁移文件](https://x-file-storage.xuyanwu.cn/#/迁移文件) GitHub:https://github.com/dromara/x-file-storage Gitee:https://gitee.com/dromara/x-file-storage 文档1:https://x-file-storage.dromara.org 文档2:https://x-file-storage.xuyanwu.cn 文档3:https://spring-file-storage.xuyanwu.cn ------- # 📜更新内容 - 修复某些情况下哈希计算错误的问题 - 修复七牛云 Kodo 预签名 URL 无法使用的问题 ------- # 📦使用 点击 [快速入门](https://x-file-storage.xuyanwu.cn/#/快速入门) 查看全部存储平台的使用方法! #### 🔧 配置 这里以阿里云 OSS 为例,`pom.xml` 引入本项目,这里默认是 `SpringBoot` 环境,其它环境参考 [脱离 SpringBoot 单独使用](https://x-file-storage.xuyanwu.cn/#/脱离SpringBoot单独使用) ```xml <!-- 引入本项目 --> <dependency> <groupId>org.dromara.x-file-storage</groupId> <artifactId>x-file-storage-spring</artifactId> <version>2.2.1</version> </dependency> <!-- 引入 阿里云 OSS SDK,如果使用其它存储平台,就引入对应的 SDK --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.16.1</version> </dependency> ``` `application.yml` 配置文件中添加以下基础配置 ```yaml dromara: x-file-storage: #文件存储配置 default-platform: aliyun-oss-1 #默认使用的存储平台 aliyun-oss: - platform: aliyun-oss-1 # 存储平台标识 enable-storage: true # 启用存储 access-key: ?? secret-key: ?? end-point: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.oss-cn-shanghai.aliyuncs.com/ base-path: test/ # 基础路径 ``` #### 🔨编码 在启动类上加上`@EnableFileStorage`注解 ```java @EnableFileStorage @SpringBootApplication public class SpringFileStorageTestApplication { public static void main(String[] args) { SpringApplication.run(SpringFileStorageTestApplication.class,args); } } ``` #### ✨开始上传 支持 File、MultipartFile、byte[]、InputStream、URL、URI、String、HttpServletRequest,大文件会自动分片上传。如果想支持更多方式,请阅读 [文件适配器](https://x-file-storage.xuyanwu.cn/#/文件适配器) 章节 ```java @RestController public class FileDetailController { @Autowired private FileStorageService fileStorageService;//注入实列 /** * 上传文件 */ @PostMapping("/upload") public FileInfo upload(MultipartFile file) { //只需要这一行代码即可上传成功 return fileStorageService.of(file).upload(); } /** * 上传文件,成功返回文件 url */ @PostMapping("/upload2") public String upload2(MultipartFile file) { FileInfo fileInfo = fileStorageService.of(file) .setPath("upload/") //保存到相对路径下,为了方便管理,不需要可以不写 .setObjectId("0") //关联对象id,为了方便管理,不需要可以不写 .setObjectType("0") //关联对象类型,为了方便管理,不需要可以不写 .putAttr("role","admin") //保存一些属性,可以在切面、保存上传记录、自定义存储平台等地方获取使用,不需要可以不写 .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(); } /** * 直接读取 HttpServletRequest 中的文件进行上传,成功返回文件信息 * 使用这种方式有些注意事项,请查看文档 基础功能-上传 章节 */ @PostMapping("/upload-request") public FileInfo uploadPlatform(HttpServletRequest request) { return fileStorageService.of(request).upload(); } } ``` #### 🎨其它操作 ```java //手动构造文件信息,可用于其它操作 FileInfo fileInfo = new FileInfo() .setPlatform("huawei-obs-1") .setBasePath("test/") .setPath("aa/") .setFilename("image.png") .setThFilename("image.png.min.jpg"); //文件是否存在 boolean exists = fileStorageService.exists(fileInfo); //下载 byte[] bytes = fileStorageService.download(fileInfo).bytes(); //删除 fileStorageService.delete(fileInfo); //其它更多操作 ``` 如果将文件记录保存到数据库中,还可以更方便的根据 URL 进行操作了,详情请阅读 [保存上传记录](https://x-file-storage.xuyanwu.cn/#/基础功能?id=保存上传记录) 章节 ```java //直接从数据库中获取 FileInfo 对象,更加方便执行其它操作 FileInfo fileInfo = fileStorageService.getFileInfoByUrl("https://abc.def.com/test/aa/image.png"); //文件是否存在 boolean exists = fileStorageService.exists("https://abc.def.com/test/aa/image.png"); //下载 byte[] bytes = fileStorageService.download("https://abc.def.com/test/aa/image.png").bytes(); //删除 fileStorageService.delete("https://abc.def.com/test/aa/image.png"); //其它更多操作 ``` 点击 [快速入门](https://x-file-storage.xuyanwu.cn/#/快速入门) 查看全部存储平台的使用方法! -------
7433a5f
2024-07-18 13:48
下载
v2.2.0
<h3 align="center"> <img src="https://x-file-storage.xuyanwu.cn/assets/logo.svg" height="200px" alt="logo"/><br /> <span>原名 X Spring File Storage 现已捐赠至 <a target="_blank" href="https://dromara.org/zh">dromara</a> 开源组织</span> </h3> <p align="center"> <a target="_blank" href="https://x-file-storage.dromara.org">x-file-storage.dromara.org</a> | <a target="_blank" href="https://x-file-storage.xuyanwu.cn">x-file-storage.xuyanwu.cn</a> | <a target="_blank" href="https://spring-file-storage.xuyanwu.cn">spring-file-storage.xuyanwu.cn</a> </p> <p align="center"> <a target="_blank" href="https://central.sonatype.com/search?q=org.dromara.x-file-storage"> <img src="https://img.shields.io/maven-central/v/org.dromara.x-file-storage/x-file-storage-core.svg?label=Maven%20Central" /> </a> <a target="_blank" href="https://www.apache.org/licenses/LICENSE-2.0"> <img src="https://img.shields.io/badge/license-Apache%202-green.svg" /> </a> <a target="_blank" href="https://www.oracle.com/technetwork/java/javase/downloads/index.html"> <img src="https://img.shields.io/badge/JDK-8+-blue.svg" /> </a> <a target="_blank" href='https://github.com/dromara/x-file-storage'> <img src="https://img.shields.io/github/stars/dromara/x-file-storage.svg?style=social" alt="github star"/> </a> <a href='https://gitee.com/dromara/x-file-storage'> <img src='https://gitee.com/dromara/x-file-storage/badge/star.svg?theme=dark' alt='star' /> </a> <br /> <a href='https://jq.qq.com/?_wv=1027&k=eGfeNqka'> <img src='https://img.shields.io/badge/QQ%E7%BE%A4-515706495-orange' alt='' /> </a> </p> # 📚简介 一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、百度云 BOS、又拍云 USS、MinIO、 Amazon S3、GoogleCloud Storage、FastDFS、 Azure Blob Storage、Cloudflare R2、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动 云EOS、沃云 OSS、网易数帆 NOS、Ucloud US3、青云 QingStor、平安云 OBS、首云 OSS、IBM COS、其它兼容 S3 协议的存储平台。查看 [所有支持的存储平台](https://x-file-storage.xuyanwu.cn/#/存储平台) 💡 通过 WebDAV 连接到 Alist 后,可以使用百度网盘、天翼云盘、阿里云盘、迅雷网盘等常见存储服务,查看 [Alist 支持的存储平台](https://alist-doc.nn.ci/docs/webdav) 🚚 支持在不同存储平台之间迁移文件,详情查看 [迁移文件](https://x-file-storage.xuyanwu.cn/#/迁移文件) GitHub:https://github.com/dromara/x-file-storage Gitee:https://gitee.com/dromara/x-file-storage 文档1:https://x-file-storage.dromara.org 文档2:https://x-file-storage.xuyanwu.cn 文档3:https://spring-file-storage.xuyanwu.cn ------- # 📜更新内容 - 新增获取文件 - 新增列举文件 - 重构预签名 URL 支持客户端上传、下载、删除等操作 - 新增 Solon 插件 - 升级 Hutool 版本 - 手动分片上传功能优化、以及增加对 GoogleCloud Storage 的支持 - 优化缩略图异常处理 - 优化代码结构 - 修复分片场景下哈希值一致问题 - 修复 Minio 分片上传偶发性报错 - 修复本地存储添加静态资源访问未生效的问题 ------- # 📦使用 点击 [快速入门](https://x-file-storage.xuyanwu.cn/#/快速入门) 查看全部存储平台的使用方法! #### 🔧 配置 这里以阿里云 OSS 为例,`pom.xml` 引入本项目,这里默认是 `SpringBoot` 环境,其它环境参考 [脱离 SpringBoot 单独使用](https://x-file-storage.xuyanwu.cn/#/脱离SpringBoot单独使用) ```xml <!-- 引入本项目 --> <dependency> <groupId>org.dromara.x-file-storage</groupId> <artifactId>x-file-storage-spring</artifactId> <version>2.2.0</version> </dependency> <!-- 引入 阿里云 OSS SDK,如果使用其它存储平台,就引入对应的 SDK --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.16.1</version> </dependency> ``` `application.yml` 配置文件中添加以下基础配置 ```yaml dromara: x-file-storage: #文件存储配置 default-platform: aliyun-oss-1 #默认使用的存储平台 aliyun-oss: - platform: aliyun-oss-1 # 存储平台标识 enable-storage: true # 启用存储 access-key: ?? secret-key: ?? end-point: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.oss-cn-shanghai.aliyuncs.com/ base-path: test/ # 基础路径 ``` #### 🔨编码 在启动类上加上`@EnableFileStorage`注解 ```java @EnableFileStorage @SpringBootApplication public class SpringFileStorageTestApplication { public static void main(String[] args) { SpringApplication.run(SpringFileStorageTestApplication.class,args); } } ``` #### ✨开始上传 支持 File、MultipartFile、byte[]、InputStream、URL、URI、String、HttpServletRequest,大文件会自动分片上传。如果想支持更多方式,请阅读 [文件适配器](https://x-file-storage.xuyanwu.cn/#/文件适配器) 章节 ```java @RestController public class FileDetailController { @Autowired private FileStorageService fileStorageService;//注入实列 /** * 上传文件 */ @PostMapping("/upload") public FileInfo upload(MultipartFile file) { //只需要这一行代码即可上传成功 return fileStorageService.of(file).upload(); } /** * 上传文件,成功返回文件 url */ @PostMapping("/upload2") public String upload2(MultipartFile file) { FileInfo fileInfo = fileStorageService.of(file) .setPath("upload/") //保存到相对路径下,为了方便管理,不需要可以不写 .setObjectId("0") //关联对象id,为了方便管理,不需要可以不写 .setObjectType("0") //关联对象类型,为了方便管理,不需要可以不写 .putAttr("role","admin") //保存一些属性,可以在切面、保存上传记录、自定义存储平台等地方获取使用,不需要可以不写 .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(); } /** * 直接读取 HttpServletRequest 中的文件进行上传,成功返回文件信息 * 使用这种方式有些注意事项,请查看文档 基础功能-上传 章节 */ @PostMapping("/upload-request") public FileInfo uploadPlatform(HttpServletRequest request) { return fileStorageService.of(request).upload(); } } ``` #### 🎨其它操作 ```java //手动构造文件信息,可用于其它操作 FileInfo fileInfo = new FileInfo() .setPlatform("huawei-obs-1") .setBasePath("test/") .setPath("aa/") .setFilename("image.png") .setThFilename("image.png.min.jpg"); //文件是否存在 boolean exists = fileStorageService.exists(fileInfo); //下载 byte[] bytes = fileStorageService.download(fileInfo).bytes(); //删除 fileStorageService.delete(fileInfo); //其它更多操作 ``` 如果将文件记录保存到数据库中,还可以更方便的根据 URL 进行操作了,详情请阅读 [保存上传记录](https://x-file-storage.xuyanwu.cn/#/基础功能?id=保存上传记录) 章节 ```java //直接从数据库中获取 FileInfo 对象,更加方便执行其它操作 FileInfo fileInfo = fileStorageService.getFileInfoByUrl("https://abc.def.com/test/aa/image.png"); //文件是否存在 boolean exists = fileStorageService.exists("https://abc.def.com/test/aa/image.png"); //下载 byte[] bytes = fileStorageService.download("https://abc.def.com/test/aa/image.png").bytes(); //删除 fileStorageService.delete("https://abc.def.com/test/aa/image.png"); //其它更多操作 ``` 点击 [快速入门](https://x-file-storage.xuyanwu.cn/#/快速入门) 查看全部存储平台的使用方法! -------
e20502e
2024-07-02 15:15
下载
v2.1.0
<h3 align="center"> <img src="https://x-file-storage.xuyanwu.cn/assets/logo.svg" height="200px" alt="logo"/><br /> <span>原名 X Spring File Storage 现已捐赠至 <a target="_blank" href="https://dromara.org/zh">dromara</a> 开源组织</span> </h3> <p align="center"> <a target="_blank" href="https://x-file-storage.dromara.org">x-file-storage.dromara.org</a> | <a target="_blank" href="https://x-file-storage.xuyanwu.cn">x-file-storage.xuyanwu.cn</a> | <a target="_blank" href="https://spring-file-storage.xuyanwu.cn">spring-file-storage.xuyanwu.cn</a> </p> <p align="center"> <a target="_blank" href="https://central.sonatype.com/search?q=org.dromara.x-file-storage"> <img src="https://img.shields.io/maven-central/v/org.dromara.x-file-storage/x-file-storage-core.svg?label=Maven%20Central" /> </a> <a target="_blank" href="https://www.apache.org/licenses/LICENSE-2.0"> <img src="https://img.shields.io/badge/license-Apache%202-green.svg" /> </a> <a target="_blank" href="https://www.oracle.com/technetwork/java/javase/downloads/index.html"> <img src="https://img.shields.io/badge/JDK-8+-blue.svg" /> </a> <a target="_blank" href='https://github.com/dromara/x-file-storage'> <img src="https://img.shields.io/github/stars/dromara/x-file-storage.svg?style=social" alt="github star"/> </a> <a href='https://gitee.com/dromara/x-file-storage'> <img src='https://gitee.com/dromara/x-file-storage/badge/star.svg?theme=dark' alt='star' /> </a> <br /> <a href='https://jq.qq.com/?_wv=1027&k=eGfeNqka'> <img src='https://img.shields.io/badge/QQ%E7%BE%A4-515706495-orange' alt='' /> </a> </p> # 📚简介 一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、百度云 BOS、又拍云 USS、MinIO、 Amazon S3、GoogleCloud Storage、FastDFS、 Azure Blob Storage、Cloudflare R2、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动 云EOS、沃云 OSS、网易数帆 NOS、Ucloud US3、青云 QingStor、平安云 OBS、首云 OSS、IBM COS、其它兼容 S3 协议的存储平台。查看 [所有支持的存储平台](https://x-file-storage.xuyanwu.cn/#/存储平台) 💡 通过 WebDAV 连接到 Alist 后,可以使用百度网盘、天翼云盘、阿里云盘、迅雷网盘等常见存储服务,查看 [Alist 支持的存储平台](https://alist-doc.nn.ci/docs/webdav) GitHub:https://github.com/dromara/x-file-storage Gitee:https://gitee.com/dromara/x-file-storage 文档1:https://x-file-storage.dromara.org 文档2:https://x-file-storage.xuyanwu.cn 文档3:https://spring-file-storage.xuyanwu.cn ------- # 📜更新内容 - 新增 FastDFS 存储平台 - 新增 Azure Blob Storage 存储平台 - 新增复制文件,支持跨存储平台复制 - 新增移动(重命名)文件,支持跨存储平台移动(重命名) - 新增大文件手动分片上传(断点续传),1.0.0 版本早已支持大文件自动分片上传 - 新增计算哈希功能,上传下载时可以边处理边计算 - 上传无需强制获取文件大小,上传未知大小的文件更友好 - 优化 SpringBoot 自动配置兼容非 SpringWeb 环境 - 优化FileKey获取方式,避免空指针异常 - 优化上传代码结构 - 优化异常处理 - 优化进度监听器 - 修复上传时设置缩略图保存名称错误的BUG - 兼容低版本SpringBoot(2.0.x)的依赖注入 - 修复华为云 OBS 上传进度问题 - 修复 MultipartFile 存储到本地时,在某些情况下输入流未关闭的问题 - 修复 又拍云 USS 上传缩略图文件时 Response 未关闭的问题 ------- # 📦使用 点击 [快速入门](https://x-file-storage.xuyanwu.cn/#/快速入门) 查看全部存储平台的使用方法! #### 🔧 配置 这里以阿里云 OSS 为例,`pom.xml` 引入本项目,这里默认是 `SpringBoot` 环境,其它环境参考 [脱离 SpringBoot 单独使用](https://x-file-storage.xuyanwu.cn/#/脱离SpringBoot单独使用) ```xml <!-- 引入本项目 --> <dependency> <groupId>org.dromara.x-file-storage</groupId> <artifactId>x-file-storage-spring</artifactId> <version>2.1.0</version> </dependency> <!-- 引入 阿里云 OSS SDK,如果使用其它存储平台,就引入对应的 SDK --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.16.1</version> </dependency> ``` `application.yml` 配置文件中添加以下基础配置 ```yaml dromara: x-file-storage: #文件存储配置 default-platform: aliyun-oss-1 #默认使用的存储平台 aliyun-oss: - platform: aliyun-oss-1 # 存储平台标识 enable-storage: true # 启用存储 access-key: ?? secret-key: ?? end-point: ?? bucket-name: ?? domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.oss-cn-shanghai.aliyuncs.com/ base-path: test/ # 基础路径 ``` #### 🔨编码 在启动类上加上`@EnableFileStorage`注解 ```java @EnableFileStorage @SpringBootApplication public class SpringFileStorageTestApplication { public static void main(String[] args) { SpringApplication.run(SpringFileStorageTestApplication.class,args); } } ``` #### ✨开始上传 支持 File、MultipartFile、byte[]、InputStream、URL、URI、String、HttpServletRequest,大文件会自动分片上传。如果想支持更多方式,请阅读 [文件适配器](https://x-file-storage.xuyanwu.cn/#/文件适配器) 章节 ```java @RestController public class FileDetailController { @Autowired private FileStorageService fileStorageService;//注入实列 /** * 上传文件 */ @PostMapping("/upload") public FileInfo upload(MultipartFile file) { //只需要这一行代码即可上传成功 return fileStorageService.of(file).upload(); } /** * 上传文件,成功返回文件 url */ @PostMapping("/upload2") public String upload2(MultipartFile file) { FileInfo fileInfo = fileStorageService.of(file) .setPath("upload/") //保存到相对路径下,为了方便管理,不需要可以不写 .setObjectId("0") //关联对象id,为了方便管理,不需要可以不写 .setObjectType("0") //关联对象类型,为了方便管理,不需要可以不写 .putAttr("role","admin") //保存一些属性,可以在切面、保存上传记录、自定义存储平台等地方获取使用,不需要可以不写 .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(); } /** * 直接读取 HttpServletRequest 中的文件进行上传,成功返回文件信息 * 使用这种方式有些注意事项,请查看文档 基础功能-上传 章节 */ @PostMapping("/upload-request") public FileInfo uploadPlatform(HttpServletRequest request) { return fileStorageService.of(request).upload(); } } ``` #### 🎨其它操作 ```java //手动构造文件信息,可用于其它操作 FileInfo fileInfo = new FileInfo() .setPlatform("huawei-obs-1") .setBasePath("test/") .setPath("aa/") .setFilename("image.png") .setThFilename("image.png.min.jpg"); //文件是否存在 boolean exists = fileStorageService.exists(fileInfo); //下载 byte[] bytes = fileStorageService.download(fileInfo).bytes(); //删除 fileStorageService.delete(fileInfo); //其它更多操作 ``` 如果将文件记录保存到数据库中,还可以更方便的根据 URL 进行操作了,详情请阅读 [保存上传记录](https://x-file-storage.xuyanwu.cn/#/基础功能?id=保存上传记录) 章节 ```java //直接从数据库中获取 FileInfo 对象,更加方便执行其它操作 FileInfo fileInfo = fileStorageService.getFileInfoByUrl("https://abc.def.com/test/aa/image.png"); //文件是否存在 boolean exists = fileStorageService.exists("https://abc.def.com/test/aa/image.png"); //下载 byte[] bytes = fileStorageService.download("https://abc.def.com/test/aa/image.png").bytes(); //删除 fileStorageService.delete("https://abc.def.com/test/aa/image.png"); //其它更多操作 ``` 点击 [快速入门](https://x-file-storage.xuyanwu.cn/#/快速入门) 查看全部存储平台的使用方法! -------
f00a038
2024-01-19 10:43
下载
v2.0.0
d0e6519
2023-10-18 10:54
下载
v1.0.3
069a42b
2023-08-17 17:24
下载
v1.0.2
abe0a84
2023-08-09 17:16
下载
v1.0.1
8ca12c3
2023-08-08 17:36
下载
v1.0.0
efa3573
2023-08-06 19:25
下载
v0.7.0
2c7187a
2022-11-14 10:46
下载
v0.6.1
1c5fff0
2022-09-05 14:50
下载
v0.6.0
d779c68
2022-08-17 15:40
下载
v0.5.0
d694fa9
2022-08-12 18:14
下载
v0.4.0
7c75abb
2021-06-09 09:14
下载
v0.3.0
faa6603
2021-06-04 15:44
下载
0.2.1
a3a7af9
2021-05-25 16:59
下载
v0.2.1
a3a7af9
2021-05-25 16:59
下载
0.2.0
97b4e8d
2021-05-25 13:32
下载
v0.2.0
97b4e8d
2021-05-25 13:32
下载
0.1.6
a6c9c50
2021-05-22 11:43
下载
v0.1.6
a6c9c50
2021-05-22 11:43
下载
下载
请输入验证码,防止盗链导致资源被占用
取消
下载
Java
1
https://gitee.com/heronofault/x-file-storage.git
git@gitee.com:heronofault/x-file-storage.git
heronofault
x-file-storage
x-file-storage
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册