【问题标题】:How can be created an independent directory for each user in Shiny app?Shiny应用程序中如何为每个用户创建一个独立的目录?
【发布时间】:2020-09-10 02:57:36
【问题描述】:

我正在构建一个闪亮的应用程序,它根据用户上传的文件创建多个文件。创建的文件具有相同的名称,这可以使用户在下载文件时以与其数据无关的信息结尾。

Shiny app中如何为每个用户创建一个独立的目录?

到目前为止,我找到了下一个解决方案来创建目录来存储文件:

directory <- paste0(format(Sys.time(),"%Y%m%d%H%M%S"),rnorm(1),
                    rnorm(1))
dir.create(directory)
setwd(directory)

但我了解到,如果我将应用程序上传到服务器,这可能无法正常工作。 我应该怎么做?

【问题讨论】:

  • 您最后的评论是正确的——这可能取决于您将如何部署应用程序(例如,shinyapps.io 或您自己的 Shiny 服务器等)

标签: r shiny directory


【解决方案1】:

This 是我在 RStudio 社区得到的并为我工作的答案:

来自 RStudio 社区的@pieterjanvc:

在 Shiny 中设置工作目录可能不会像那样工作。我建议您根据用户的会话令牌生成一个文件夹,该令牌在用户连接到 Shiny 应用程序时生成并位于会话变量中。

library(shiny)
    
ui <- fluidPage(
    
)
    
server <- function(input, output, session) {
     
   dir.create(session$token)
   file.create(paste0(session$token, "/userFile.txt"))
     
}
    
shinyApp(ui, server)

创建目录后,您可以再次使用令牌保存该目录中的任何文件,令牌是该用户的基本文件夹的名称。任务完成后记得清除文件夹,否则很快就会有很多文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 2014-06-25
    • 1970-01-01
    • 2019-01-20
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多