如何使用OpenCPU提供压缩文件?

时间:2019-01-11 10:58:33

标签: r gzip deflate opencpu brotli

我正在使用OpenCPU本地单用户服务器生成并提供大文件。我希望此文件可以压缩后提供。

我尝试了一些尝试,但是似乎都没有用。

  • 直接返回文件内容
  • 进行两次调用以生成并获取文件

这些都不能让我获得所需的压缩内容:服务器使用没有Content-Encoding响应头的未压缩文件进行响应。下面的图表说明了我所做的事情。

ocpu diagram

如果您希望重现此行为,则需要使用以下功能创建一个包

my_function <- function() {
  rmd_path = system.file("some_report.rmd", package = "yourpkg")
  rmarkdown::render(rmd_path , "html_document", output_file="some_report.html", output_dir = getwd(), intermediates_dir = getwd())
  bin_file <- readBin(rmd_path, raw(), file.info(rmd_path)$size)
  return(bin_file)
}

my_other_function <- function() {
  rmd_path = system.file("report.rmd", package = "yourpkg")
  rmarkdown::render(rmd_path , "html_document", output_file="report.html", output_dir = getwd(), intermediates_dir = getwd())
}

据我所知,压缩为should be enabled in the default apache2 configuration,并且如果客户端使用适当的Accept-Encoding标头请求服务器,它应该可以正常工作。 此假设正确吗?可以在单用户服务器中配置它吗?我在这里做什么错了?

系统信息:

  • OpenCPU单用户服务器,版本2.0.8
  • 使用Postman v6.7.1或OpenCPU测试页来触发请求

0 个答案:

没有答案