有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java大文件下载不完整,无错误

我们正在下载一个非常大的文件(~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是一个预先指定的谷歌云存储URL

这只是库没有检测到连接重置问题吗?还是别的什么

有更好的图书馆吗。或者我需要先做一个头部通话,然后根据内容长度匹配下载的大小

不要在意它不起作用,这种情况会发生,我们有重试逻辑。我的问题是代码认为它确实有效

更新:所以它似乎在开始下载后2小时就失败了。这让我怀疑可能是网络操作/防火墙问题。我不确定在哪一方面,我会先和我的行动团队争论。有人知道谷歌时代的时间限制吗

忽略此更新-现在有更多实例,没有设置时间。20分钟到2小时之间


共 (1) 个答案

  1. # 1 楼答案

    从未解决过核心问题。但是可以通过比较下载到Content-Length头的字节来解决问题。在循环中工作,使用Range头(类似于curl -C -)恢复不完整的下载