Skip to content

Commit

Permalink
Merge pull request #200 from 1171736840/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
1171736840 authored Jan 19, 2024
2 parents 9333c29 + 8fa3980 commit b387cdf
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 60 deletions.
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
### 📚简介

一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、百度云 BOS、又拍云 USS、MinIO、
Amazon S3、GoogleCloud Storage、Cloudflare R2、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动 云EOS、沃云 OSS、
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)
Expand All @@ -51,6 +51,8 @@ Gitee:https://gitee.com/dromara/x-file-storage

这里是简要的更新记录,查看 [详细的更新记录](https://x-file-storage.xuyanwu.cn/#/更新记录)

`2.1.0` 修复大量问题,新增存储平台 FastDFS 和 Azure Blob Storage,新增复制、移动(重命名)文件,手动分片上传(断点续传)和计算哈希等功能,详情查看 [更新记录](https://x-file-storage.xuyanwu.cn/#/更新记录?id=_210)
<br />
`2.0.0` 捐赠至 [dromara](https://dromara.org/zh) 开源社区,更改项目名、包名,优化项目结构、支持 Metadata 元数据等,从旧版升级需要注意,详情查看 [更新记录](https://x-file-storage.xuyanwu.cn/#/更新记录?id=_200)
<br />
`1.0.3` 修复了 FileStorageClientFactory 未自动加载等问题,查看 [更新记录](https://x-file-storage.xuyanwu.cn/#/更新记录?id=_103)
Expand All @@ -65,9 +67,10 @@ Gitee:https://gitee.com/dromara/x-file-storage

### 📅更新计划

- 接入存储平台:HDFS、FastDFS、杉岩 OBS、Samba、NFS
- 大文件手动分片上传(1.0.0 已支持大文件自动分片上传)
- 复制或移动文件
- 接入存储平台:HDFS、火山云 TOS、Samba、NFS
- 用户端直传
- 追加缩略图
- 列出文件
- 文件内容预加载
- 新增 Access 模块,尝试通过 HTTP、FTP、WebDAV 等协议对外提供接口,方便其它程序使用

Expand All @@ -86,7 +89,7 @@ Gitee:https://gitee.com/dromara/x-file-storage
<dependency>
<groupId>org.dromara.x-file-storage</groupId>
<artifactId>x-file-storage-spring</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
<!-- 引入 阿里云 OSS SDK,如果使用其它存储平台,就引入对应的 SDK -->
<dependency>
Expand Down
11 changes: 7 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
# 📚简介

一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、百度云 BOS、又拍云 USS、MinIO、
Amazon S3、GoogleCloud Storage、Cloudflare R2、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动 云EOS、沃云 OSS、
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 协议的存储平台。查看 [所有支持的存储平台](存储平台)

💡 通过 WebDAV 连接到 Alist 后,可以使用百度网盘、天翼云盘、阿里云盘、迅雷网盘等常见存储服务,查看 [Alist 支持的存储平台](https://alist-doc.nn.ci/docs/webdav)
Expand All @@ -52,6 +52,8 @@ Gitee:https://gitee.com/dromara/x-file-storage

这里是简要的更新记录,查看 [详细的更新记录](更新记录)

`2.1.0` 修复大量问题,新增存储平台 FastDFS 和 Azure Blob Storage,新增复制、移动(重命名)文件,手动分片上传(断点续传)和计算哈希等功能,详情查看 [更新记录](更新记录?id=_210)
<br />
`2.0.0` 捐赠至 [dromara](https://dromara.org/zh) 开源社区,更改项目名、包名,优化项目结构、支持 Metadata 元数据等,从旧版升级需要注意,详情查看 [更新记录](更新记录?id=_200)
<br />
`1.0.3` 修复了 FileStorageClientFactory 未自动加载等问题,查看 [更新记录](更新记录?id=_103)
Expand All @@ -66,9 +68,10 @@ Gitee:https://gitee.com/dromara/x-file-storage

# 📅更新计划

- 接入存储平台:HDFS、FastDFS、杉岩 OBS、Samba、NFS
- 大文件手动分片上传(1.0.0 已支持大文件自动分片上传)
- 复制或移动文件
- 接入存储平台:HDFS、火山云 TOS、Samba、NFS
- 用户端直传
- 追加缩略图
- 列出文件
- 文件内容预加载
- 新增 Access 模块,尝试通过 HTTP、FTP、WebDAV 等协议对外提供接口,方便其它程序使用

Expand Down
3 changes: 2 additions & 1 deletion docs/_navbar.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
* 🌟文档版本 2.0.0
* 🌟文档版本 2.1.0

* [2.1.0](https://x-file-storage.xuyanwu.cn/2.1.0/)
* [2.0.0](https://x-file-storage.xuyanwu.cn/2.0.0/)
* [1.0.3](https://x-file-storage.xuyanwu.cn/1.0.3/)
* [1.0.2](https://x-file-storage.xuyanwu.cn/1.0.2/)
Expand Down
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<meta name="description"
content="原名 X Spring File Storage,一行代码将文件存储到阿里云OSS、华为云OBS、七牛云Kodo、腾讯云COS、百度云 BOS、又拍云USS等平台">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="icon" href="https://x-file-storage.xuyanwu.cn//assets/logo4.png" type="image/x-icon"/>
<link rel="stylesheet" href="https://x-file-storage.xuyanwu.cn/assets/docsify-theme-vue.css">
<style>
#main {
Expand Down
10 changes: 4 additions & 6 deletions docs/存储平台.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,12 @@

Alist 一款支持多种存储的目录文件列表程序,支持 Web 浏览与 WebDAV,后端基于Gin,前端使用React。<br />
通过 WebDAV 连接到 Alist 后,可以使用百度网盘、天翼云盘、阿里云盘、迅雷网盘等常见存储服务,
[查看 Alist 支持的存储平台](https://alist-doc.nn.ci/docs/webdav)
[查看 Alist 支持的存储平台](https://alist.nn.ci/zh/guide/webdav.html#webdav-%E5%AD%98%E5%82%A8%E6%94%AF%E6%8C%81)

**使用方法**
1. 根据 [文档](https://alist-doc.nn.ci/docs/intro) 搭建 Alist 服务
2. 在 Alist 添加对应平台的账号 [详情](https://alist-doc.nn.ci/docs/driver/base)
3. 通过 WebDAV 连接到 Alist [详情](https://alist-doc.nn.ci/docs/webdav)
4. 开始使用吧
5. 这部分文档未完待续
1. 根据 [文档](https://alist.nn.ci/zh/guide/install/script.html) 搭建 Alist 服务
2. 通过 WebDAV 连接到 Alist [详情](https://alist.nn.ci/zh/guide/webdav.html)
3. 开始使用吧

## 获取对应存储平台

Expand Down
2 changes: 1 addition & 1 deletion docs/快速入门.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<dependency>
<groupId>org.dromara.x-file-storage</groupId>
<artifactId>x-file-storage-spring</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```

Expand Down
20 changes: 18 additions & 2 deletions docs/更新记录.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,24 @@
-------

## 📦2.1.0 :id=_210
2023-10-21
2024-01-19
- 新增 FastDFS 存储平台
- 新增 Azure Blob Storage 存储平台
- 新增复制文件,支持跨存储平台复制
- 新增移动(重命名)文件,支持跨存储平台移动(重命名)
- 新增大文件手动分片上传(断点续传),1.0.0 版本早已支持大文件自动分片上传
- 新增计算哈希功能,上传下载时可以边处理边计算
- 上传无需强制获取文件大小,上传未知大小的文件更友好
- 优化 SpringBoot 自动配置兼容非 SpringWeb 环境
- 优化FileKey获取方式,避免空指针异常
- 优化上传代码结构
- 优化异常处理
- 优化进度监听器
- 修复上传时设置缩略图保存名称错误的BUG
- 兼容低版本SpringBoot(2.0.x)的依赖注入
- 修复华为云 OBS 上传进度问题
- 修复 MultipartFile 存储到本地时,在某些情况下输入流未关闭的问题
- 修复 又拍云 USS 上传缩略图文件时 Response 未关闭的问题

-------

Expand Down Expand Up @@ -36,7 +52,7 @@
<dependency>
<groupId>org.dromara.x-file-storage</groupId>
<artifactId>x-file-storage-spring</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion docs/脱离SpringBoot单独使用.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<dependency>
<groupId>org.dromara.x-file-storage</groupId>
<artifactId>x-file-storage-core</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
</scm>

<properties>
<revision>2.1.0-SNAPSHOT</revision>
<revision>2.1.0</revision>
<!--region Maven Base-->
<maven.version>3.8.1</maven.version>
<java.version>8</java.version>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.dromara.x.file.storage.core.upload;

import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import java.io.IOException;
import java.util.concurrent.CopyOnWriteArrayList;
import org.dromara.x.file.storage.core.Downloader;
Expand Down Expand Up @@ -58,21 +59,23 @@ public FileInfo execute() {
_fileRecorder.deleteFilePartByUploadId(_fileInfo.getUploadId());

// 文件上传完成,识别文件 ContentType
if (_fileInfo.getContentType() == null) {
new Downloader(_fileInfo, aspectList, _fileStorage, Downloader.TARGET_FILE)
.inputStream(in -> {
try {
_fileInfo.setContentType(
_contentTypeDetect.detect(in, _fileInfo.getOriginalFilename()));
// 这里静默关闭流,防止出现 Premature end of Content-Length delimited message body
// 错误
IoUtil.close(in);
} catch (IOException e) {
throw new RuntimeException(e);
}
});

_fileRecorder.update(_fileInfo);
if (StrUtil.isNotBlank(_fileInfo.getContentType())) {
try {
new Downloader(_fileInfo, aspectList, _fileStorage, Downloader.TARGET_FILE)
.inputStream(in -> {
try {
_fileInfo.setContentType(_contentTypeDetect.detect(
in, _fileInfo.getOriginalFilename()));
// 这里静默关闭流,防止出现 Premature end of Content-Length
// delimited message body 错误
IoUtil.close(in);
} catch (IOException e) {
throw new RuntimeException(e);
}
});
_fileRecorder.update(_fileInfo);
} catch (Exception ignored) {
}
}
return _fileInfo;
})
Expand Down
46 changes: 23 additions & 23 deletions x-file-storage-tests/x-file-storage-general-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,20 @@
<scope>runtime</scope>
</dependency>
<!-- WebDAV -->
<!-- <dependency>-->
<!-- <groupId>com.github.lookfirst</groupId>-->
<!-- <artifactId>sardine</artifactId>-->
<!-- </dependency>-->
<!-- SFTP -->
<!-- <dependency>-->
<!-- <groupId>com.github.lookfirst</groupId>-->
<!-- <artifactId>sardine</artifactId>-->
<!-- <groupId>com.jcraft</groupId>-->
<!-- <artifactId>jsch</artifactId>-->
<!-- </dependency>-->
<!-- SFTP -->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
</dependency>
<!-- FTP -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>commons-net</groupId>-->
<!-- <artifactId>commons-net</artifactId>-->
<!-- </dependency>-->
<!-- Amazon S3 -->
<!-- <dependency>-->
<!-- <groupId>com.amazonaws</groupId>-->
Expand Down Expand Up @@ -88,10 +88,10 @@
<!-- <artifactId>qiniu-java-sdk</artifactId>-->
<!-- </dependency>-->
<!-- 阿里云 OSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.aliyun.oss</groupId>-->
<!-- <artifactId>aliyun-sdk-oss</artifactId>-->
<!-- </dependency>-->
<!-- 华为云 OBS -->
<dependency>
<groupId>com.huaweicloud</groupId>
Expand All @@ -109,14 +109,14 @@
<!-- <artifactId>fastdfs-client-java</artifactId>-->
<!-- </dependency>-->
<!-- Azure Blob -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.azure</groupId>-->
<!-- <artifactId>azure-storage-blob</artifactId>-->
<!-- </dependency>-->
<!-- Azure File Data Lake 用于处理 ACL -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-file-datalake</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.azure</groupId>-->
<!-- <artifactId>azure-storage-file-datalake</artifactId>-->
<!-- </dependency>-->
</dependencies>
</project>

0 comments on commit b387cdf

Please sign in to comment.