用管道工服务可下载的文件

时间:2018-09-21 11:53:07

标签: r plumber

如何设置我的管道工API,以便它提供可下载的文件?

例如,我想直接传递rdsRData对象,而不是将其序列化为JSON。

1 个答案:

答案 0 :(得分:0)

使用正确的序列化器很重要:

# If the URL gets called the browser will automatically download the file.
#' @serializer contentType list(type="application/octet-stream")
#' @get /rds
rest_rds = function() {
  tfile = tempfile()
  saveRDS(iris, file = tfile)
  readBin(tfile, "raw", n = file.info(tfile)$size)
}

在提供了该管道工脚本后,您可以下载该对象并将其导入到单独的R会话中,如下所示:

tfile = tempfile()
download.file("http://127.0.0.1:7983/rds", destfile = tfile)
d_iris = readRDS(tfile)