我们正在下载一个非常大的文件(~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。
这只是库没有检测到连接重置问题吗?或者是其他东西?
有没有更好的库我可以使用。或者我是否需要先进行 HEAD 调用,然后将下载的大小与内容长度进行匹配。
不要在意它不起作用,这种情况发生了,我们有重试逻辑。我的问题是认为它确实有效的代码。
更新:所以它似乎在开始下载后正好 2 小时就失败了。这让我怀疑它可能是网络/防火墙问题。不确定在哪一端,我会为我的运营团队找麻烦。有人知道谷歌结束的时间限制吗?
忽略此更新 - 现在有更多实例,没有固定时间。20分钟到2小时之间的任何地方。
RISEBY
相关分类