Разрешения сервера для блестящего downloadhandeller () - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь настроить блестящее приложение, которое может загружать HTML-графики из пакета googleViz. Код работает на моей машине, но когда я перемещаю его на сервер, я получаю следующее сообщение при тестировании загрузки ...

"Запрошенный URL был отклонен. Обратитесь к администратору."

Я изо всех сил пытаюсь выяснить, что нужно сделать ИТ-персоналу, который настраивал сервер, чтобы решить проблему - я ничего не знаю о серверах, а они ничего не знают о R.

Я создал небольшое примерное приложение здесь , чтобы продемонстрировать проблему, основываясь на следующем ui.R

library(shiny)
library(googleVis)

# user interface
shinyUI(pageWithSidebar(
    headerPanel("googleVis on Shiny"),
    sidebarPanel(
        selectInput("dataset", label = "Choose a dataset:",
                    choices = c("rock", "pressure", "cars")),
        downloadButton('download_gvis', label = 'Download')
    ),
    mainPanel(
        htmlOutput("view")
    )
))

и server.R

library(googleVis)
library(webshot)

shinyServer(function(input, output) {
  # data set from user 
  datasetInput <- reactive({
    switch(input$dataset,
           "rock" = rock,
           "pressure" = pressure,
           "cars" = cars)
  })

  # plot of data set from user
  my_plot <- reactive({
    gvisScatterChart(datasetInput(),
                     options=list(title=paste('Data:',input$dataset)))
  })

  # render plot of data set from user
  output$view <- renderGvis({
    my_plot()
  })

  # download plot of data set from user
  output$download_gvis <- downloadHandler(
    filename = "test.png",
    content = function(file) {
      g <- my_plot()

      # print to html file
      print(g, file = "gg.html")

      # take a webshot of html file and save as png
      webshot(
        url = "gg.html", 
        file = "output.png", 
        delay = 2
      )

      # send output file to downloadHandler
      file.copy("output.png", file)

      # delete files
      file.remove("gg.html")
      file.remove("output.png")
    }
  )
})

Я думаю, что код скрипта на print(g, file = "gg.html") в сценарии сервера. Файл gg.html никогда не появляется в каталоге сервера (на моем локальном компьютере я вижу его в представлении каталога RStudio).

...