R Shiny: Загрузить существующий файл

Скажем, у меня есть существующий zip файл (out.zip) в моем блестящем приложении (т.е. расположенном на сервере). Я хочу, чтобы пользователь мог загрузить этот файл. Этот вопрос очень похож на на этот. Однако этот вопрос застегивает файлы в downloadHandler, тогда как zip файл уже существует в моем случае.

library(shiny)

app <- list(
  ui = fluidPage(
    titlePanel(""),
    sidebarLayout(
      sidebarPanel(
        downloadButton("downloadData", label = "Download")
      ),
      mainPanel(h6("Sample download", align = "center"))
    )
  ),

  server = function(input, output) {  
    output$downloadData <- downloadHandler(
      filename <- function() {
        paste("output", "zip", sep=".")
      },

      content <- function(file) {
        # not sure what to put here???
      },
      contentType = "application/zip"
    )
  }
)

shiny::runApp(app)

Ответ 1

После разговора с различными функциями обработки файлов я обнаружил, что file.copy можно использовать для загрузки файла.

Я меняю downloadHandler на:

output$downloadData <- downloadHandler(
  filename <- function() {
    paste("output", "zip", sep=".")
  },

  content <- function(file) {
    file.copy("out.zip", file)
  },
  contentType = "application/zip"
)