IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Web Discussion :

Utilisation d'un serveur WEB pour upload / download vers application Rest.


Sujet :

Conception Web

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Utilisation d'un serveur WEB pour upload / download vers application Rest.
    Salut à tous !

    Je viens ici car je n'ai pas trouvé réponse à mon problème. Il faut savoir que j'utilise Django et la librairie pyCURL (équialent de CURL).

    Mon problème est le suivant :

    Je développe un portail censé s'interfacer avec une machine disposant d'interfaces REST. Je sais très facilement m'y connecter et faire le job. Mais le problème se corse lorsque je veux Uploader / Downloader des fichiers vers cette plateforme.

    Étant donné que l'on parle d'un serveur WEB, je suis obligé d'uploader le fichier vers le serveur, puis dans un second temps d'uploader vers la machine. Même chose dans le sens inverse. Un peu comme si j'avais un FTP à la place de l'application REST.

    Pour résumer, actuellement :

    Upload d'un fichier :

    Client >> Serveur Web > via curl > Machine REST

    Pour des petits fichiers, ça passe, mais quand ça devient large, c'est nettement plus long...

    Dans l'idéal, je voudrais :

    Client >via ?> Machine (stream de fichier?)

    Je pourrais également avoir un lien direct vers le fichier à télécharger. Cependant, il faut passer par une page login / password, ce qui ne fait pas très propre. Pour peu que je puisse modifier le header et mettre le token d'authentification à la volée, ça marche.. Mais depuis un serveur WEB, ce n'est pas possible (j'ai réussi à le faire en modifiant la requête avec Chrome).

    Voilà je ne sais pas si j'ai été clair, je vous remercie d'avance pour vos réponses

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    et la question bête, par FTP ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Merci pour votre réponse,

    Que voulez vous dire par FTP ?

    Car sans parler du fait que je ne sais pas si il est possible d'envoyer quelque chose via FTP sur l'API REST mise à ma disposition, le problème reste le même.

    En fait, je voudrais créer une interface type arborescence de fichier en WEB, permettant l'upload / downlaod de fichiers d'une arborescence (l'API REST permet d'avoir le contenu des dossiers, télécharger, uploader, etc), un peu comme sur un DropBox ou un google drive.

    Donc si il est possible d'envoyer via le protocole FTP, le problème reste le même puisque je devrais envoyer le fichier via mon serveur WEB, qui lui se chargera de l'envoyer en FTP (temps de chargement x2).

    Or, je ne veux pas ce temps x2. Il faudrait que le serveur WEB soit seulement un intermédiaire pour initier la connexion.
    Je ne sais pas si c'est possible

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    faire du routage sur un serveur web avec un protocole spécifique je ne pense pas.
    Lorsque je parlais de ftp c'était plus vers un répertoire ou accès ton applis REST.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 561
    Points : 21 624
    Points
    21 624
    Par défaut
    Citation Envoyé par switchON Voir le message
    Or, je ne veux pas ce temps x2. Il faudrait que le serveur WEB soit seulement un intermédiaire pour initier la connexion.
    Je ne sais pas si c'est possible
    Seulement si la machine REST a fait en sorte que ce soit possible.
    Puisque c'est du REST il est possible d'exprimer des requêtes AJAX qui l'attaquent directement. Mais vu que la machine REST n'est pas le serveur web qui fournit la page web en cours, ces requêtes ne se feront que si la machine REST transmet une autorisation CORS (en gros, un navigateur n'autorise pas n'importe quel site inconnu à aller faire des requêtes sur le site de ta banque. Il ne le permettra que si le site de la banque lui signale qu'il est d'accord.)
    C'est un protocole supplémentaire et en général il n'est pas là, soit que personne n'y ait pensé, soit volontairement par sécurité.

    Par ailleurs ça voudrait dire que les tokens d'authentification permettant de se connecter à la machine REST sont fournis au navigateur du visiteur qui peut donc les voir, ce qui peut être un problème et peut ne pas en être un. Tout dépend ce que représente ce token au juste.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    J'ai effectivement tenté de faire ça en AJAX, mais sans succès.
    Le token consiste en une chaine de caractères de la forme suivante : login:password, login étant encodé en base64 et password un hash md5.

    J'ai réussi à me connecter sans entrer login / password en modifiant le header d'authentification via une extension pour chrome, mais je ne sais pas reproduire ça en Javascript. En soit, rien que le fait de pouvoir me connecter sans mot de passe corrigerait le problème, je n'aurais ainsi plus qu'à accéder à l'url vers le fichier pour télécharger. Et pour l'upload je me contenterai d'un tiering asynchrone (mais c'est clair que niveau sécu c'est pas top).

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 561
    Points : 21 624
    Points
    21 624
    Par défaut
    Citation Envoyé par switchON Voir le message
    J'ai réussi à me connecter sans entrer login / password en modifiant le header d'authentification via une extension pour chrome, mais je ne sais pas reproduire ça en Javascript.
    Hum... Ajouter un header à une requête, c'est ajouter un header à une requête. Puisqu'en JavaScript tu fais des requêtes avec XMLHttpRequest, il faut le faire avec l'objet XMLHttpRequest que tu utilises bien sûr.

    Il n'y a rien d'étonnant à ce que tu ne puisses pas deviner comment, c'est pourquoi, en fait, il aurait fallu chercher comment. Google "ajax ajouter header" te donne déjà tout ce dont tu as besoin. Mais si tu préfères une recherche plus académique, tu pouvais aller regarder le travail en cours W3C sur XMLHttpRequest ce qui te permettrait de trouver rapidement setRequestHeader() et de tester si les navigateurs l'implémentent correctement. Réponse : oui.

    Après, il reste à voir si le serveur REST va accepter une requête AJAX. C'est peu probable.

Discussions similaires

  1. [XHTML] A-t-on besoin d'un serveur web pour XHTML ?
    Par raton_laveur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 30/09/2008, 10h14
  2. Réponses: 3
    Dernier message: 30/06/2008, 22h18
  3. Serveur Web et upload de fichier
    Par dondano dans le forum Langage
    Réponses: 3
    Dernier message: 23/02/2007, 13h33
  4. [debutant]serveur web pour perl
    Par roger12 dans le forum Web
    Réponses: 2
    Dernier message: 11/01/2007, 19h11
  5. Serveur Web pour petite config
    Par PerfectSlayer dans le forum Réseau
    Réponses: 1
    Dernier message: 24/10/2005, 13h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo