将readRDS函数应用于R中的Arvados Collection连接时出错



当我试图从位于Arvados平台上的RDS文件读取R对象时,我遇到了一个错误。首先,我使用以下代码连接到Arvados并获得一个文件列表:

library('ArvadosR')
# Read ARVADOS_API_TOKEN and ARVADOS_API_HOST
readRenviron("~/.config/arvados/arv.conf")
# Connect to Arvados
arv = Arvados$new()
# Get collection object
coll = Collection$new(arv, "<collection_uuid>")
# List collection content
coll$getFileListing()

当我用读取以制表符分隔的文件xyz.txt

df.a = read.delim(coll$get("xyz.txt")$connection("r"))

它非常好用。然而,当我尝试用读取RDS文件abc.RDS

df.b = readRDS(coll$get("abc.RDS")$connection("r"))

我得到以下错误

Error in readRDS(coll$get("abc.RDS")$connection("r")) : 
unknown input format

从本地驱动器读取abc.RDS工作正常。根据帮助页面,readRDS接受";R对象保存到其中或从中读取的文件的连接或名称";。

我可以让它与readRDS(gzcon(coll$get("abc.RDS")$connection("rb")))一起工作。

help(readRDS)中,我注意到了以下段落:

"当file是文件名时,压缩由打开的连接处理,因此只有当file是连接时,如果由连接处理,才可能进行压缩。因此,例如url连接将需要封装在对gzcon的调用中">