Shinyproxy: Montage de shinyproxy sur le système de fichiers hôte.

Créé le 5 janv. 2021  ·  8Commentaires  ·  Source: openanalytics/shinyproxy

J'ai une application brillante dans laquelle les utilisateurs peuvent télécharger des données, manipuler les données dans l'application, puis enregistrer les données manipulées dans leur système de fichiers local. Je peux le faire fonctionner localement avec shinyproxy en utilisant

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

dans application.yml. Cela monte le système de fichiers des utilisateurs hôtes (/Users) sur le conteneur (/app_data). Cependant, lorsque je déploie l'application sur un serveur distant, je ne peux plus la monter sur le système de fichiers hôte. Je voudrais que l'utilisateur puisse enregistrer dans son propre système de fichiers. Est-ce possible? J'ai essayé des alternatives à /Users telles que ${HOME} sans succès.

Merci.

question

Tous les 8 commentaires

oui, vous pouvez le faire avec la syntaxe comme :

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

À l'aide de:
container-volumes: ["/home/#{proxy.userId}:/app_data"]
me empêche toujours d'accéder au système de fichiers hôte lorsque l'application est déployée sur un serveur distant. Pour le contexte, j'utilise shinyFileSave dans l'application shiny et ce code est le suivant :
roots <- c("Home Directory" = "/app_data")
shinyFileSave(input = input, id = 'save', roots = roots, session = session)
Lorsque je déploie mon application via un serveur distant et que j'utilise le bouton d'enregistrement de fichier, je suis monté sur un système de fichiers vierge sans aucun dossier au lieu de mon système de fichiers hôte avec accès à mon bureau, etc. Suis-je monté sur le système de fichiers de l'utilisateur hôte sur la télécommande Linux serveur au lieu du système de fichiers sur leur bureau ? Ou peut-être est-ce un problème d'autorisations. En fin de compte, j'aimerais que l'utilisateur puisse enregistrer ce qu'il a créé dans l'application Web sur son bureau. Merci!

Au cas où cela serait utile, voici une liste des différents montages que j'ai tentés. Aucun n'a fonctionné jusqu'à présent :

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

Est-ce que je monte sur le système de fichiers de l'utilisateur hôte sur le serveur distant Linux au lieu du système de fichiers sur son bureau ?

Oui correct. Si le shinyproxy s'exécute sur un serveur distant Linux, le système hôte est ce serveur distant, auquel vous pouvez accéder avec des montages de volume.

En fin de compte, j'aimerais que l'utilisateur puisse enregistrer ce qu'il a créé dans l'application Web sur son bureau.

Un downloadButton ne suffirait-il pas dans ce cas ? (https://shiny.rstudio.com/articles/download.html)

La solution downloadButton et downloadHandler n'est pas idéale mais elle fonctionnera. Je pense que c'est probablement la seule solution étant donné la nature de ShinyProxy et qu'il serait impossible de le monter sur le bureau de l'ordinateur d'un utilisateur. Merci pour l'aide!

Le « système de fichiers hôte » est le système de fichiers du serveur distant. Ce que vous voulez réaliser, c'est enregistrer le fichier dans le système de fichiers du client ? Ce n'est pas possible à mon avis.

Oui, le but initial était de sauvegarder un fichier dans le système de fichiers du client avec shinyFileSave mais je suis d'accord que c'est impossible.

Salut @lucius-verus-fan

Je pense que vous avez répondu à votre question maintenant, donc je ferme ce sujet. Comme toujours, n'hésitez pas à ouvrir un nouveau numéro si vous avez d'autres questions ou problèmes.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

erossini picture erossini  ·  3Commentaires

Emelieh21 picture Emelieh21  ·  5Commentaires

benkates picture benkates  ·  3Commentaires

algo-se picture algo-se  ·  6Commentaires

donarus picture donarus  ·  3Commentaires