为了账号安全,请及时绑定邮箱和手机立即绑定

java中的大文件下载不完整且没有错误

java中的大文件下载不完整且没有错误

吃鸡游戏 2022-07-14 09:32:39
我们正在下载一个非常大的文件(~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小时之间的任何地方。
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

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



查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 705 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信