成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Boot實現(xiàn)TUS協(xié)議支持文件斷點上傳

YacaToy / 3534人閱讀

摘要:實現(xiàn)協(xié)議實現(xiàn)文件斷點上傳關(guān)于協(xié)議提供一種基于和機制用于文件斷點續(xù)傳。請求請求當前文件的服務(wù)器信息,返回文件大小和當前進度。請求上傳文件,寫入磁盤系統(tǒng)。是最簡單的一個文件上傳頁面。參考文獻關(guān)于協(xié)議本文中用到的關(guān)于請求

Spring Boot實現(xiàn)TUS協(xié)議實現(xiàn)文件斷點上傳 關(guān)于Tus
TUS協(xié)議提供一種基于 HTTP/1.1 和 HTTP/2 機制用于文件斷點續(xù)傳。
舉例

HEAD請求用來查詢某個文件上傳進度使用
下面例子中一個文件總共100個Byte,已經(jīng)傳輸了70個Byte,所有交互內(nèi)容都在HTTP請求頭中。

HEAD Request:

HEAD /files/24e533e02ec3bc40c387f1a0e460e216 HTTP/1.1
Host: tus.example.org
Tus-Resumable: 1.0.0

Response:

HTTP/1.1 200 OK
Upload-Offset: 70
Tus-Resumable: 1.0.0

拿到Upload-Offset, 使用PATCH方式請求繼續(xù)傳輸文件的未完成部分。

PATCH Request:

PATCH /files/24e533e02ec3bc40c387f1a0e460e216 HTTP/1.1
Host: tus.example.org
Content-Type: application/offset+octet-stream
Content-Length: 30
Upload-Offset: 70
Tus-Resumable: 1.0.0

[remaining 30 bytes]

Response:

HTTP/1.1 204 No Content
Tus-Resumable: 1.0.0
Upload-Offset: 100

以上就完成了傳輸。

請求類型

OPTIONS請求

主要是獲取協(xié)議描述,支持的各種參數(shù),協(xié)議細節(jié),其實tus使用Header來進行服務(wù)器和客戶端信息交互,OPTIONS需要實現(xiàn)兩個Action,一個用于總的協(xié)議描述,另一個可以獲取到當前文件的上傳進度Offset。

POST請求

當有新文件需要上傳時候,注冊文件信息,文件名,文件大小,這些內(nèi)容,tus-js-client的文件名是Base64格式的。

HEAD請求

請求當前文件的服務(wù)器信息,返回文件大小和當前進度。

PATCH請求

上傳文件,寫入磁盤系統(tǒng)。

Get請求

下載文件,根據(jù)guid

DELETE請求

刪除文件

大致流程

流程見下圖,不解釋了

客戶端

客戶端本文使用js-tus-client項目,這個項目本地自行啟動,有node.js環(huán)境的,如下:

npm install -g http-server
cd html
http-server .

然后打開瀏覽器8080端口,就可以看到頁面了。

Simple.html 是最簡單的一個文件上傳頁面demo。

其他都是js-tus-client的內(nèi)容。

tus需要本地瀏覽器中存儲已經(jīng)上傳的文件信息,這些js-tus-client都已經(jīng)實現(xiàn)。

Github地址

https://github.com/freew01f/t...

代碼都在這里了,這里就不解釋了,如果你想修改上傳的endpoint地址,你需要在POST方法創(chuàng)建時修改,因為這個url會存在本地瀏覽器中。

參考文獻

關(guān)于TUS協(xié)議 https://tus.io/protocols/resu...

本文中用到的js client https://github.com/tus/tus-js...

關(guān)于OPTIONS請求 https://developer.mozilla.org...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72522.html

相關(guān)文章

  • Spring Boot 2.x(十六):玩轉(zhuǎn)vue文件上傳

    摘要:為什么使用最近用到了來完成文件上傳的操作,踩了一些坑,對比了一些的組件,發(fā)現(xiàn)了一個很好用的組件再說說為什么選用這個組件,對比和的上傳組件,它能做到更多的事情,比如可暫停繼續(xù)上傳上傳隊列管理,支持最大并發(fā)上傳分塊上傳支持進度預(yù)估 為什么使用Vue-Simple-Uploader 最近用到了Vue + Spring Boot來完成文件上傳的操作,踩了一些坑,對比了一些Vue的組件,發(fā)現(xiàn)了一...

    JessYanCoding 評論0 收藏0
  • spring boot開發(fā)soap webservice

    摘要:本文介紹如何在中開發(fā)接口,以及接口如何同時支持和兩種協(xié)議。該功能很簡單,就是通過一個人的姓名查詢這個人的詳細信息。就是關(guān)鍵,如本次請求報文如下就是,對應(yīng)。測試使用進行測試,通過地址導(dǎo)入文件進行測試。測試這樣就實現(xiàn)了和同時提供的目的。 介紹spring boot web模塊提供了RestController實現(xiàn)restful,第一次看到這個名字的時候以為還有SoapController,...

    Ashin 評論0 收藏0
  • 源碼解讀 Spring Boot Profiles

    摘要:有了配置文件之后,啟動程序,我們首先可以看到日志輸入,由此可以看出程序讀取了的配置。首先,根據(jù)的全局查找功能,直接搜索這些詞出現(xiàn)的位置,進行定位,可以找到這個日志出現(xiàn)于方法之中。由于我們的配置文件在下,所以只要留意當為的程序執(zhí)行情況即可。 前言 上文《一文掌握 Spring Boot Profiles》 是對 Spring Boot Profiles 的介紹和使用,因此本文將從源碼角度...

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<