我正在将客户端构建到 RESTful API 上。一些链接让我可以从服务器下载附件(文件),最好是 .txt。我只提到了 RESTful 部分,因为这意味着我必须在每篇文章中发送一些标题和可能的正文——标准的 R 'filename'=URL 逻辑不起作用。
有时人们将许多 txt 文件捆绑到一个 zip 文件中。这些很尴尬,因为我不知道它们包含什么,直到我下载了很多。
目前,我正在解压缩这些文件,压缩文件(添加 .gz 扩展名)并重新上传它们。然后可以对它们进行索引和下载。
我正在使用 Hadley 的可爱httr包,但我看不到解压缩 gz 文件的优雅方法。
使用 read.csv 或类似文件时,任何以 gz 结尾的文件都会自动解压缩(方便!)。使用 httr 或 curl 时的等价物是什么?
content(GET("http://glimmer.rstudio.com/alexbbrown/gz/sample.txt.gz"))
[1] 1f 8b 08 08 4e 9e 9b 51 00 03 73 ...
看起来不错,带有正确标头 (1f 8b) 的压缩字节流。现在我需要文本内容,所以我尝试使用 memDecompress,它说它应该这样做:
memDecompress(content(GET("http://glimmer.rstudio.com/alexbbrown/gz/sample.txt.gz")),type="gzip")
Error in memDecompress(content(GET("http://glimmer.rstudio.com/alexbbrown/gz/sample.txt.gz")), :
internal error -3 in memDecompress(2)
这里的正确解决方案是什么?
另外,有没有办法让 R 提取远程 .zip 文件的索引而不下载所有文件?