Как мне подать сжатый файл с OpenCPU? - PullRequest
0 голосов
/ 11 января 2019

Я использую OpenCPU Local Single-User Server для генерации и обслуживания большого файла. Я бы хотел, чтобы этот файл был сжат.

Я пробовал несколько вещей, но, похоже, ни одна из них не работает.

  • Непосредственный возврат содержимого файла
  • Выполнение двух вызовов для генерации и получения файла

Ни один из них не позволяет мне получить сжатый контент, который мне нужен: сервер отвечает несжатым файлом без 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())
}

Насколько я понимаю, сжатие должно быть включено в конфигурации apache2 по умолчанию , и если клиент запрашивает сервер с соответствующими Accept-Encoding заголовками, оно должно работать как задумано. Это предположение верно? Это можно настроить на однопользовательском сервере? Что я тут не так делаю?

Системная информация:

  • однопользовательский сервер OpenCPU, версия 2.0.8
  • Использование Postman v6.7.1 или тестовой страницы OpenCPU для запуска запроса
...