Shinyproxy: 将 Shinyproxy 挂载到主机文件系统。

创建于 2021-01-05  ·  8评论  ·  资料来源: openanalytics/shinyproxy

我有一个闪亮的应用程序,用户可以在其中上传数据,操作应用程序中的数据,然后将操作的数据保存到他们的本地文件系统。 我可以使用 Shinyproxy 在本地运行它

container-volumes: ["/Users:/app_data"]

在 application.yml 中。 这会将主机用户文件系统 (/Users) 挂载到容器 (/app_data)。 但是,当我在远程服务器上部署应用程序时,我无法再挂载到主机文件系统。 我希望用户能够保存到他们自己的文件系统。 这可能吗? 我尝试了一些 /Users 的替代方法,例如 ${HOME} 没有成功。

谢谢你。

question

所有8条评论

是的,您可以使用以下语法来做到这一点:

container-volumes: ["/home/#{proxy.userId}:/app_data"]

使用:
container-volumes: ["/home/#{proxy.userId}:/app_data"]
当应用程序部署在远程服务器上时,仍然导致我无法访问主机文件系统。 对于上下文,我在闪亮的应用程序中使用了shinyFileSave,代码如下:
roots <- c("Home Directory" = "/app_data")
shinyFileSave(input = input, id = 'save', roots = roots, session = session)
当我通过远程服务器部署我的应用程序并使用文件保存按钮时,我被挂载到一个没有任何文件夹的空白文件系统,而不是我的主机文件系统,可以访问我的桌面等。我是否挂载到 linux 远程主机用户的文件系统服务器而不是桌面上的文件系统? 或者可能是权限问题。 在一天结束时,我希望用户能够将他们在 web 应用程序中创建的内容保存到他们的桌面。 谢谢!

如果它有用,这里是我尝试过的各种安装的列表。 到目前为止都没有工作:

`container-volumes: ["${HOME}:/app_data"]`
`container-volumes: ["/$pwd:/app_data"]`
`container-volumes: ["$HOME:/app_data"]`
`container-volumes: ["/Users:/app_data"]`
`container-volumes: ["~:/app_data"]`
`container-volumes: ["/home/#{proxy.userId}:/app_data"]`

我是否挂载到 linux 远程服务器上的主机用户文件系统而不是他们桌面上的文件系统?

是,对的。 如果 Shinyproxy 在 linux 远程服务器上运行,则主机系统就是该远程服务器,您可以通过卷挂载来访问它。

在一天结束时,我希望用户能够将他们在 web 应用程序中创建的内容保存到他们的桌面。

在这种情况下, downloadButton还不够吗? (https://shiny.rstudio.com/articles/download.html)

downloadButtondownloadHandler解决方案并不理想,但它会起作用。 我认为鉴于 ShinyProxy 的性质,这可能是唯一的解决方案,并且不可能安装到用户计算机的桌面上。 感谢您的帮助!

“主机文件系统”是远程服务器的文件系统。 您要实现的是将文件保存到客户端的文件系统? 在我看来这是不可能的。

是的,最初的目标是使用shinyFileSave将文件保存到客户端的文件系统,但我同意这是不可能的。

嗨@lucius-verus-fan

我认为您的问题现在已得到解答,因此我将关闭此问题。 与往常一样,如果您有任何其他问题或问题,请随时打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jat255 picture jat255  ·  3评论

jat255 picture jat255  ·  6评论

PauloJhonny picture PauloJhonny  ·  8评论

ramkumarg1 picture ramkumarg1  ·  7评论

fmmattioni picture fmmattioni  ·  3评论