У меня есть приложение Shiny, которое работает как положено как локально, так и в контейнерах. Приложение получает некоторый пользовательский ввод, запрашивает базу данных и возвращает .zip
, содержащий файлы .pdf
и .xlsx
. По причинам, я буду развертывать его на сервере под управлением Shiny Server. При запуске приложения я получаю сообщение об ошибке, что обработка [filename].knit.md
невозможна, так как «Отказано в доступе:»
После выяснения причин, по которым это может в таком случае, я думаю, что функция пользователя shiny
(запускающего приложение в shiny-server.conf
) не имеет прав доступа к файлу dir /. Проблема, с которой я столкнулся, это диагностика этой ошибки, потому что временный каталог и файл не существуют нигде в структуре локального каталога.
В server.R
я вызываю tempfile()
и использую этот временный файл в качестве ввода для output_file
в команде render()
. Я знаю, что tempfile()
является подкаталогом временного каталога для сеанса, так как я могу гарантировать, что пользователь shiny
может получить доступ к любому tempdir()
, созданному во время работы приложения?
Далее, я правильно предполагаю, что временный каталог на изображении выше автоматически удаляется при выходе из приложения? Я не могу найти этот каталог в дереве /tmp
сервера.