現在需要在java應用服務器上傳大檔案分片資料流到遠程服務器。前端分片傳過來后,經過后端的java業務,直接上傳到遠程的linux服務器,現在使用jsch框架不行,使用smb也不行,試了很多插件都沒有上傳大檔案分片資料到遠程服務器的框架。大佬們指點指點,現在我就缺這樣一個可以將前端傳輸過來的分片資料流保存到遠程檔案服務器的插件。
uj5u.com熱心網友回復:
那你就自己定義傳輸協議,前端按協議分片傳輸,后端按協議再拼炊訓來(就像zip分割壓縮)uj5u.com熱心網友回復:
前端已經分片了,那就照原樣傳到 Linux 服務器,等所有分片上傳完畢,再告訴 Linux 服務器合并分片即可。uj5u.com熱心網友回復:
現在各種云(阿里云,華為云。。)都支持檔案上傳的。也可以考慮前端直接把檔案上傳到公有云。uj5u.com熱心網友回復:
簡單定義一個:1 client-》server, 提交原始檔案名,長度,檔案創建時間,檔案修改時間,回傳 服務器檔案id,分片長度
2 查詢,提交檔案名或檔案id,回傳該檔案 服務器檔案id,接收狀態,分片長度,已接受的分片
3 上傳分片,服務器檔案id,分片資料
uj5u.com熱心網友回復:
提交檔案基本資訊和分塊資訊。分塊傳送。
結束 合并保存。
檢查完整性
完整。拿分
uj5u.com熱心網友回復:
http協議本身就支持你說的這個功能吧,只是,現有的框架,大多都支持的小檔案的上傳。你去網上查一下 Java 的斷點續傳功能,應該能夠幫助到你。
大檔案的分片傳輸,估計就是斷點續傳功能相關聯的。
是在不行,自己寫一個接收檔案上傳的代碼不就完了么。
servlet , spring-mvc, 等等,都應該沒啥問題。
關鍵的一點是,如果一個大檔案你分片上傳了,那么,等檔案都傳完之后,為了確保上傳的資料真實有效,還要再把檔案的MD5校驗碼也傳過去,盡量確保發送的和接收的資料是一致的。
uj5u.com熱心網友回復:
不知道你具體要求是啥,也不太清楚你的大檔案是多大,smb是要求局域網的,公網假設不合適。聽你的講述,大概理解為服務端傳服務端,我假設兩端都是java服務端,可以使用socket來做,一點一點傳即可,第一次握手傳檔案總長度和hash校驗碼,然后傳一點保存一次傳輸狀態防止網路不穩定。
其實自己寫也不是很麻煩。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/11278.html
標籤:Java SE
上一篇:Java 的區域變數的使用一定要經顯示初始化嗎??????
下一篇:java實作開機自啟動
