从 RStudio 服务器渲染 rmarkdown 到外部驱动器

Render rmarkdown from RStudio server to external drive

在本地工作时,我使用以下方式呈现 rmarkdown 文档:

rmarkdown::render(input = rmd.temp , output_dir = out.dir, output_file = out.name)

这会获取我的模板文档 rmd.temp,然后将文档呈现为 out.dir 并将文件命名为 out.name

我正在尝试在 RStudio 服务器上进行复制。当 out.dir 是本地目录时,代码工作正常。但是,当 out.dir 是到外部驱动器的映射目录时,我收到以下错误:

Error in replayPlot(x) : 
  could not open file'/...path..../figure-html/unnamed-chunk-2-1.png'

映射驱动器的 link 有效,因为我可以使用:

dir.create(out.dir)

并看到新文件夹出现。有什么想法导致渲染卡住吗?

更新

这可能只是一个权限问题,因为我也不会写 csv 文件:

df <- data.frame(a=1:10)

setwd(out.dir)

write.csv(df, file = "df.csv")

Error in file(file, ifelse(append, "a", "w")) : 
  cannot open the connection

RStudio 服务器 运行 在 Ubuntu。我将打开一个关于如何授予 RStudio 文件夹权限的新问题。

对于遇到此问题的任何人,可以通过将此添加到脚本的开头来解决:

Sys.umask(mode="0000")

这是一个权限问题。在 shell / 命令行中,全局权限为“0000”,但在 RStudio 控制台中为“0002”,这会为新文件生成 -rw-r-- 权限。可以为 RStudio 更改全局权限,但这有效。