我正在为RESTful API构建客户端。有些链接允许我从服务器下载附件(文件),并且在最佳情况下,这些是.txt格式的。我之所以提到RESTful部分,是因为它意味着我必须在每个post中发送一些标题和可能的正文 - 标准R“filename”= URL逻辑无法工作。
有时人们将许多txt捆绑成一个zip。这些很麻烦,因为在下载许多文件之前,我不知道它们包含什么。
暂时,我正在解压它们,对文件进行gzip压缩(添加.gz扩展名)并重新上传它们。然后可以对它们进行索引和下载。
我正在使用Hadley的可爱的httr软件包,但是我看不到一种优雅的方法来解压gz文件。
当使用read.csv或类似方法时,任何具有.gz结尾的文件都会自动解压缩(方便!)。在使用httr或curl时,相应的方法是什么?
有时人们将许多txt捆绑成一个zip。这些很麻烦,因为在下载许多文件之前,我不知道它们包含什么。
暂时,我正在解压它们,对文件进行gzip压缩(添加.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文件的索引而不必下载全部内容?