Я использую OpenCPU Local Single-User Server для генерации и обслуживания большого файла. Я бы хотел, чтобы этот файл был сжат.
Я пробовал несколько вещей, но, похоже, ни одна из них не работает.
- Непосредственный возврат содержимого файла
- Выполнение двух вызовов для генерации и получения файла
Ни один из них не позволяет мне получить сжатый контент, который мне нужен: сервер отвечает несжатым файлом без Content-Encoding
заголовка ответа. Ниже приведена схема, иллюстрирующая то, что я сделал.
Если вы хотите воспроизвести это поведение, вам нужно создать пакет с такими функциями, как
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 для запуска запроса