将文件存储在服务器上运行闪亮的应用程序是一种好习惯吗?

时间:2015-11-13 09:11:58

标签: r shiny

我在服务器上运行了一个闪亮的应用程序 预处理数据我正在使用系统unix工具,如下所示:

    
for (file in 1:length(files)){
    foon <- paste("data/",files[file],".txt",sep="")        
if(.Platform$OS.type == "unix") {
        system(paste("sed 's/\t/,/g' ", foon," | tail -n +2 > file",file, ".txt"))  
        }
       else {
        shell(paste("sed 's/\t/,/g' ", foon," | tail -n +2 > file",file,".txt", sep=""))  
      }

这会引起我没想到的问题吗? 我在Ubuntu 14服务器上运行应用程序

2 个答案:

答案 0 :(得分:1)

如果你拥有自己的服务器而且你正在运行Shiny Server,那么在它上面放置文件就绝对没问题了。如果您在shinyapps.io上运行您的应用程序,那么它不是一个好主意,因为它(还)没有持久的文件存储,但在您自己的服务器上,您可以通过任何方式访问文件。< / p>

答案 1 :(得分:1)

我通常首先将文件放在tmp上。这将是用户从闪亮的应用程序输入文件的情况。这是因为从Web应用程序来看,大多数情况下,用户可能没有对/ tmp以外的任何内容进行读/写访问。这也有助于重新计算和动态处理,而无需重新加载用户输入文件。要做到这一点,你可以简单地在ubuntu上对tmpdir执行file.copy。

我确实遇到过这些已保存文件会被缓存的情况。要处理这个问题,我会在应用程序中有一个“刷新”按钮,单击此按钮将删除tmpdir上的所有已保存文件。

另一方面,如果这些文件需要静态地在应用程序中进行处理(例如元文件或某些参考固定数据),那么您可以将文件放在与应用程序代码文件相同的目录中。