我們正在下載一個非常大的文件(~70G),但有一次代碼完成時沒有拋出異常,但下載的文件不完整,不到 50G。代碼是:public void download(String url, String filename) throws Exception { URL dumpUrl = new URL(url); try (InputStream input = dumpUrl.openStream()) { Files.copy(input, Paths.get(filename)); }}這url是一個預簽名的 Google Cloud Storage URL。這只是庫沒有檢測到連接重置問題嗎?或者是其他東西?有沒有更好的庫我可以使用?;蛘呶沂欠裥枰冗M行 HEAD 調(diào)用,然后將下載的大小與內(nèi)容長度進行匹配。不要在意它不起作用,這種情況發(fā)生了,我們有重試邏輯。我的問題是認為它確實有效的代碼。更新:所以它似乎在開始下載后正好 2 小時就失敗了。這讓我懷疑它可能是網(wǎng)絡/防火墻問題。不確定在哪一端,我會為我的運營團隊找麻煩。有人知道谷歌結(jié)束的時間限制嗎?忽略此更新 - 現(xiàn)在有更多實例,沒有固定時間。20分鐘到2小時之間的任何地方。
1 回答

RISEBY
TA貢獻1856條經(jīng)驗 獲得超5個贊
從未解決核心問題。但是能夠通過比較下載到Content-Length
標頭的字節(jié)來解決。在一個循環(huán)中工作,使用Range
標頭恢復不完整的下載(類似于curl -C -
)。
添加回答
舉報
0/150
提交
取消