Shinyproxy: Montaje de shinyproxy en el sistema de archivos del host.

Creado en 5 ene. 2021  ·  8Comentarios  ·  Fuente: openanalytics/shinyproxy

Tengo una aplicación brillante en la que los usuarios pueden cargar datos, manipular los datos en la aplicación y luego guardar los datos manipulados en su sistema de archivos local. Puedo hacer que esto se ejecute localmente con shinyproxy usando

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

en application.yml. Esto monta el sistema de archivos de los usuarios del host (/ Users) en el contenedor (/ app_data). Sin embargo, cuando implemento la aplicación en un servidor remoto, ya no puedo montar en el sistema de archivos del host. Me gustaría que el usuario pudiera guardar en su propio sistema de archivos. es posible? He probado algunas alternativas a / Users como $ {HOME} sin éxito.

Gracias.

question

Todos 8 comentarios

sí, puedes hacer eso con la sintaxis como:

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

Utilizando:
container-volumes: ["/home/#{proxy.userId}:/app_data"]
Aún así, no puedo acceder al sistema de archivos del host cuando la aplicación se implementa en un servidor remoto. Para el contexto, estoy usando shinyFileSave dentro de la aplicación brillante y ese código es el siguiente:
roots <- c("Home Directory" = "/app_data")
shinyFileSave(input = input, id = 'save', roots = roots, session = session)
Cuando implemento mi aplicación a través de un servidor remoto y uso el botón de guardar archivos, estoy montado en un sistema de archivos en blanco sin carpetas en lugar de mi sistema de archivos host con acceso a mi escritorio, etc. servidor en lugar del sistema de archivos en su escritorio? O quizás sea un problema de permisos. Al final del día, me gustaría que el usuario pudiera guardar lo que creó en la aplicación web en su escritorio. ¡Gracias!

En caso de que sea de utilidad, aquí hay una lista de los diversos montajes que he intentado. Ninguno ha funcionado hasta ahora:

`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"]`

¿Estoy montando en el sistema de archivos del usuario del host en el servidor remoto de Linux en lugar del sistema de archivos en su escritorio?

Sí correcto. Si el shinyproxy se está ejecutando en un servidor remoto de Linux, el sistema host es ese servidor remoto, al que puede acceder con montajes de volumen.

Al final del día, me gustaría que el usuario pudiera guardar lo que creó en la aplicación web en su escritorio.

¿No sería suficiente un downloadButton en este caso? (https://shiny.rstudio.com/articles/download.html)

La solución downloadButton y downloadHandler no es ideal pero funcionará. Creo que esta es probablemente la única solución dada la naturaleza de ShinyProxy y que sería imposible montarlo en el escritorio de la computadora de un usuario. ¡Gracias por la ayuda!

El "sistema de archivos del host" es el sistema de archivos del servidor remoto. ¿Qué desea lograr es guardar el archivo en el sistema de archivos del cliente? No es posible en mi opinión.

Sí, el objetivo original era guardar un archivo en el sistema de archivos del cliente con shinyFileSave pero estoy de acuerdo en que esto es imposible.

Hola @ lucius-verus-fan

Creo que su pregunta está respondida ahora, por lo tanto, estoy cerrando este tema. Como siempre, no dude en abrir un nuevo número si tiene alguna otra pregunta o problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

jfrubioz picture jfrubioz  ·  9Comentarios

jat255 picture jat255  ·  4Comentarios

benkates picture benkates  ·  3Comentarios

xtrasimplicity picture xtrasimplicity  ·  5Comentarios

algo-se picture algo-se  ·  6Comentarios