Shinyproxy: Montando o BrightProxy no sistema de arquivos do host.

Criado em 5 jan. 2021  ·  8Comentários  ·  Fonte: openanalytics/shinyproxy

Eu tenho um aplicativo brilhante no qual os usuários podem fazer upload de dados, manipular os dados no aplicativo e, em seguida, salvar os dados manipulados em seu sistema de arquivos local. Posso fazer isso rodar localmente com o BrightProxy usando

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

em application.yml. Isso monta o sistema de arquivos de usuários do host (/ Users) no contêiner (/ app_data). No entanto, quando implanto o aplicativo em um servidor remoto, não consigo mais montar no sistema de arquivos host. Gostaria que o usuário pudesse salvar em seu próprio sistema de arquivos. Isso é possível? Tentei algumas alternativas para / Usuários, como $ {HOME}, sem sucesso.

Obrigada.

question

Todos 8 comentários

sim, você pode fazer isso com a sintaxe como:

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

Usando:
container-volumes: ["/home/#{proxy.userId}:/app_data"]
ainda resulta em eu não ser capaz de acessar o sistema de arquivos do host quando o aplicativo é implantado em um servidor remoto. Para contexto, estou usando brilhanteFileSave dentro do app brilhante e esse código é o seguinte:
roots <- c("Home Directory" = "/app_data")
shinyFileSave(input = input, id = 'save', roots = roots, session = session)
Quando implanto meu aplicativo por meio de um servidor remoto e uso o botão salvar arquivo, sou montado em um sistema de arquivos em branco, sem nenhuma pasta, em vez de meu sistema de arquivos host com acesso à minha área de trabalho, etc. Estou montando no sistema de arquivos do usuário host no Linux remoto servidor em vez do sistema de arquivos em seu desktop? Ou talvez seja um problema de permissões. No final do dia, gostaria que o usuário pudesse salvar o que criou no webapp em seu desktop. Obrigado!

Caso seja útil, aqui está uma lista das várias montagens que tentei. Nenhum funcionou até agora:

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

Estou montando no sistema de arquivos do usuário host no servidor Linux remoto em vez do sistema de arquivos em sua área de trabalho?

Sim, correto. Se o Glossproxy estiver rodando em um servidor Linux remoto, o sistema host é aquele servidor remoto, que você pode acessar com montagens de volume.

No final do dia, gostaria que o usuário pudesse salvar o que criou no webapp em seu desktop.

downloadButton seria suficiente neste caso? (https://shiny.rstudio.com/articles/download.html)

A solução downloadButton e downloadHandler não é a ideal, mas funcionará. Acho que esta é provavelmente a única solução dada a natureza do ShinyProxy e que seria impossível montá-la na área de trabalho do computador de um usuário. Obrigado pela ajuda!

O “sistema de arquivos host” é o sistema de arquivos do servidor remoto. O que você deseja alcançar é salvar o arquivo no sistema de arquivos do cliente? Não é possível em minha opinião.

Sim, o objetivo original era salvar um arquivo no sistema de arquivos do cliente com shinyFileSave mas concordo que isso é impossível.

Olá @ lucius-verus-fan

Acho que sua pergunta foi respondida agora, portanto, encerrarei este problema. Como sempre, sinta-se à vontade para abrir um novo problema se tiver qualquer outra dúvida ou problema.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jfrubioz picture jfrubioz  ·  9Comentários

lucius-verus-fan picture lucius-verus-fan  ·  7Comentários

donarus picture donarus  ·  3Comentários

algo-se picture algo-se  ·  6Comentários

erossini picture erossini  ·  3Comentários