Skip to content

Commit 6c070da

Browse files
committed
support tus
1 parent ea5f6f7 commit 6c070da

File tree

1 file changed

+47
-3
lines changed

1 file changed

+47
-3
lines changed

README.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
- 支持配置自动生成
1616
- 支持小文件自动合并(减少inode占用)
1717
- 支持秒传
18+
- 支持继点续传([tus](https://tus.io/))
1819
- 支持docker部署
1920
- 支持自监控告警
2021
- 支持集群文件信息查看
@@ -41,6 +42,7 @@
4142
- 支持集群监控邮件告警
4243
- 支持小文件自动合并(减少inode占用)
4344
- 支持秒传
45+
- 支持继点续传([tus](https://tus.io/))
4446
- 支持docker部署
4547
- 支持token下载 token=md5(file_md5+timestamp)
4648
- 运维简单,只有一个角色(不像fastdfs有三个角色Tracker Server,Storage Server,Client),配置自动生成
@@ -126,6 +128,42 @@ public static void main(String[] args) {
126128
```
127129
[更多语言请参考](doc/upload.md)
128130

131+
# 断点续传示例
132+
133+
## golang版本
134+
```go
135+
package main
136+
137+
import (
138+
"os"
139+
"fmt"
140+
"github.com/eventials/go-tus"
141+
)
142+
143+
func main() {
144+
f, err := os.Open("100m")
145+
if err != nil {
146+
panic(err)
147+
}
148+
defer f.Close()
149+
// create the tus client.
150+
client, err := tus.NewClient("http://10.1.5.9:8080/big/upload/", nil)
151+
fmt.Println(err)
152+
// create an upload from a file.
153+
upload, err := tus.NewUploadFromFile(f)
154+
fmt.Println(err)
155+
// create the uploader.
156+
uploader, err := client.CreateUpload(upload)
157+
fmt.Println(err)
158+
// start the uploading process.
159+
fmt.Println( uploader.Upload())
160+
161+
}
162+
163+
````
164+
[更多客户商请参考](https://github.com/tus)
165+
166+
129167

130168
部署图
131169
![部署图](doc/go-fastdfs-deploy.png)
@@ -201,6 +239,8 @@ cd fastdfs/data && find -type f |xargs -n 1 -I {} curl -F file=@data/{} -F path=
201239

202240
```
203241
242+
243+
204244
- 还需要安装nginx么?
205245
```
206246
可以不安装,也可以选择安装
@@ -325,7 +365,7 @@ docker run --name fastdfs -v ~:/data/fastdfs -e GO_FASTDFS_DIR=/data/fastdfs fas
325365

326366
```
327367
328-
- 大文件如何分块上传
368+
- 大文件如何分块上传或断点续传
329369
```
330370
一般的分块上传都要客户端支持,而语言的多样性,客户端难以维护,但分块上传的功能又有必要,为此提供一个简单的实现思路。
331371
方案一、
@@ -338,8 +378,12 @@ http://www.hjsplit.org/
338378
具体自行实现
339379
方案三、
340380
建议用go实现hjsplit分割合并功,这样具有跨平台功能。(未实现,等你来....)
341-
342-
```
381+
方案四、
382+
使用内置的继点续传功能(使用protocol for resumable uploads协议,[详情](https://tus.io/)
383+
注意:方案四、只能指定一个上传服务器,不支持同时写,并且上传的url有变化
384+
原上传url: http://10.1.5.9:8080/<group>/upload
385+
断点上传url: http://10.1.5.9:8080/<group>/big/upload/
386+
``
343387

344388
- 集群如何规划及如何进行扩容?
345389
```

0 commit comments

Comments
 (0)