如何有效地从 http link 下载和解压缩大文件?

how to download and unzip efficiently large files from a http link?

我有一个文件列表,例如

mylist <- c('http://myweb/myzip1.gz',
            'http://myweb/myzip2.gz',
            'http://myweb/myzip3.gz)

我需要下载它们并解压到另一个路径D://mydata/

现在,我用过purrrdownload.file

#get files
myfunc <- function(mystring){
  download.file(mystring,
                destfile =  paste0('D://mydata/', basename(mystring))
}

#download data
map(mylist, myfunc)

但在下载几个小时后(每个文件超过 10GB),Rstudio 冻结(尽管下载仍在后台进行)。

有没有更高效的方法?我想跟踪 R 中的下载,而不必在某个时候冻结。

谢谢!

我认为以上信息不足以将 'an answer' 作为单个代码块提供,但我认为您可以做一些事情,共同解决问题:

  1. 在终端模式下尝试 运行 R 而不是 RStudio IDE 本身。 (这可以从较新版本的 Rstudio 访问。)
  2. 'Chunk' 任务分成更小的批次,例如,您可以使用 seq_along(mylist) %/% N 拆分文件名列表,其中 N 是块大小。考虑使用 for 循环在批次之间迭代,并且 purrr 仅在批次内迭代。
  3. 显式删除您最近加载到 R 环境中的文件,然后显式调用垃圾收集器 gc() 以将它们从 RAM 中删除。