2017-08-23 33 views
0

我上運行閃亮服務器Linux的一個閃亮的應用程序內。按照我的設置,應用程序位於/srv/shiny-server/app-dir/寫數據到不同的目錄有光澤,應用

我想要寫一個文件到該目錄爲我的光澤,應用程序讀取,使用.R文件,我放在一起。在那個文件中,我寫這樣的數據:write.csv(df, "file.csv")。如果我運行使用 Rscript /srv/shiny-server/app-dir/write_script.R我的閃亮-app目錄這個文件,它的數據寫入到/home/ec2-user

如果我將write命令更改爲write.csv(df, '/srv/shiny-server/app-dir/data.csv'),並以相同方式運行,則不起作用(權限被拒絕)。

也可以從我的光澤,應用程序內讀取/home/ec2-user/文件。

所以我的問題是:如何從可以通過我的光澤,應用程序可以訪問的R腳本(不是一個閃亮的應用程序中的server.R文件)寫入文件,給我的文件夾結構上面列出?

回答

0

Shiny應用程序由用戶shiny執行,它無法訪問用戶ec2-user的目錄home。與R指令chmod a+r /srv/shiny-server/app-dir/file.csv

    • 使用Linux命令:你可以將其複製到/srv/shiny-server/app-dir後更改文件的讀取權限system2("chmod", list("a+r", "/srv/shiny-server/app-dir/file.csv")
  • +0

    我想我的問題是不具有權限在'.csv'文件中,但首先將文件放入'/ srv/shiny-server'目錄。我不知道'system2'函數,這是否會在我的腳本中寫入'.csv'來將文件移動到'/ srv/shiny-server'?例如:'system2(「cp」,list(「/ home/ec2-user/file.csv」,「/ srv/shiny-server/app-dir)''我可以在'system2'中添加'sudo'並有它的工作? – moman822