如何在闪亮的数据表中添加下载按钮以下载相应的文件

时间:2019-12-10 08:04:33

标签: r amazon-s3 shiny download

这是我的闪亮应用程序的简单可复制示例。

library(shiny)
library(tidyverse)
library(aws.s3)
library(DT)

ui <- fluidPage(
  DTOutput('table')
)
server <- function(input, output, session) {
  get_bucket(
    bucket = 'mybuckey',
    key = "MYKEY",
    secret = "MYSECRET"
  )
  tibble(name = c("A", "B", "C"),
         file_key = c("sample_A.pdf", "sample_B.pdf", "sample_C.pdf")) -> df
  output$table <- DT::renderDT({
    DT::datatable(df)
  })

}
shinyApp(ui, server)

我正在使用库(aws.s3)从s3存储桶访问文件,与给定的示例类似,相应的文件密钥存储在数据库中。我通常使用此功能将文件从s3存储桶传输到本地存储

s3_download <- function(file_key) {
  save_object(file_key, file = file_key, bucket = "mybucket")
} 

我想做的是将file_key列更改为一个闪亮应用程序中数据表中的下载按钮,单击该按钮应从s3在浏览器中下载文件。 我不想将文件存储在本地Shiny文件夹中,但是如果需要在Shiny中使用downloadhandler函数进行下载之前将文件存储在本地(那么这将不是问题)。有什么方法可以做到这一点,至少对于本地存储的文件而不是s3而言(至少可以解决我的大部分问题)。预先感谢。

0 个答案:

没有答案