【问题标题】:Write data to different directory for shiny-app将数据写入闪亮应用程序的不同目录
【发布时间】:2018-01-31 10:16:32
【问题描述】:

我有一个在 Linux 上运行闪亮服务器的闪亮应用程序。按照我的设置,应用程序位于/srv/shiny-server/app-dir/

我想使用我放在一起的.R 文件将文件写入该目录以供我的闪亮应用程序读取。在那个文件中,我这样写数据:write.csv(df, "file.csv")。如果我从我的闪亮应用目录运行这个文件 Rscript /srv/shiny-server/app-dir/write_script.R,它将数据写入/home/ec2-user

如果我将write 命令更改为write.csv(df, '/srv/shiny-server/app-dir/data.csv') 并以同样的方式运行它不起作用(权限被拒绝)。

我也不能从我的闪亮应用程序中读取/home/ec2-user/ 中的文件。

所以我的问题是:考虑到上面概述的文件夹结构,我如何从 R 脚本(不是闪亮应用中的 server.R 文件)写入闪亮应用可以访问的文件?

【问题讨论】:

    标签: r linux shiny shiny-server


    【解决方案1】:

    Shiny Apps 由用户shiny 执行,该用户无权访问用户ec2-userhome 目录。将文件复制到/srv/shiny-server/app-dir后即可更改文件的读取权限:

    • 使用 linux 命令:chmod a+r /srv/shiny-server/app-dir/file.csv
    • 使用 R 命令:system2("chmod", list("a+r", "/srv/shiny-server/app-dir/file.csv")

    【讨论】:

    • 我认为我的问题不在于.csv 文件的权限,而是首先将文件放入/srv/shiny-server 目录。我不知道system2 函数,这在我编写.csv 以将文件移动到/srv/shiny-server 的脚本中是否有效?类似:system2("cp", list("/home/ec2-user/file.csv", "/srv/shiny-server/app-dir))。我可以将sudo 添加到system2 并让它工作吗?
    猜你喜欢
    • 2014-04-11
    • 2017-12-05
    • 2019-01-08
    • 2013-07-02
    • 2017-07-10
    • 2018-01-06
    • 2016-07-06
    • 2018-05-17
    • 2015-09-27
    相关资源
    最近更新 更多