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

Protocoles Discussion :

FTP eviter collision lecture / écriture


Sujet :

Protocoles

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut FTP eviter collision lecture / écriture
    Bonjour,

    j'ai fait une application qui transmet ou télécharge des données depuis un hébergeur selon le protocole FTP.
    Le but est de permettre à un groupe de personnes de travailler sur un fichier commun.

    Voilà les questions existentielles que je me pose:
    - Si un utilisateur A télécharge le fichier pour travailler les données sur son PC, comment alerter un éventuel utilisateur B, que le fichier est en cours d'utilisation, et qu'il est préférable d'attendre que l'actuel propriétaire libère le fichier ?
    => J'ai pensé à faire en sorte que l'utilisateur A, actuel propriétaire, dépose le temps de son travail, un fichier verrou indiquant que le fichier de données et momentanément indisponible... mais je trouve que ça fait un peu bricolage; y a-t-il une solution plus "professionnelle" ?

    - Si un utilisateur A télécharge et utilise le fichier de données, je voudrais permettre à un éventuel utilisateur B de télécharger le fichier pour consultation. Cependant, je me demande comment réagirait le système si au moment ou B télécharge le fichier, A décide d'enregistrer son travail vers le serveur. Va-t-il y avoir collision ? Existe-t-il un système pour empêcher cela ? Est-ce que cela va provoquer des levées d'exceptions ?

    Je suppose que ce sont des problèmes que l'on apprend à résoudre à l'école, mais ... je n'ai jamais appris d'informatique à l'école

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    Le protocole FTP n'est à mon avis pas adapté au travail collaboratif. Le FTP est un protocole d'échange de fichier entre un client et un serveur mais ça ne va pas plus loin que ça. Il te faudra un programme autour de ce protocole pour gérer les accès concurrents, bloquer l'accès à une ressource, notifier des clients...

    Comme tu le dis en te basant uniquement sur FTP ça ne restera que de la "bidouille". Pour automatiser la chose tu peux te prévoir des scripts "télécharger pour écriture" et "télécharger pour lecture". Le script qui "télécharge pour écriture" vérifie d'abord la présence d'un fichier "lock", s'il n'y en a pas il télécharge le fichier et place un fichier "lock" sur le serveur, si le fichier "lock" existe il informe l'utilisateur que le fichier qu'il souhaite téléchargé est déjà en cours d'écriture. Mais il te faut gérer ensuite les cas où l'utilisateur ne rend jamais le fichier et que le lock reste donc indéfiniment sur le serveur, le cas où deux personnes demandent exactement en même temps la modification du fichier, ...

    Pour répondre à ta deuxième question, j'ai fait quelques tests et FTP semble bien gérer les problèmes de conflits. Si une personne télécharge un fichier et qu'une autre personne upload pour écraser ce fichier FTP semble créer des fichiers temporaires pour que la personne qui téléchargeait le fichier puisse finir de le télécharger. Ensuite FTP supprime le fichier temporaire et remplace le fichier principal par le fichier temporaire.

    Romain.

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci beaucoup Romain pour votre réponse.

    L'histoire du fichier 'Lock', c'est ce que j'ai fait actuellement, mais je trouve que c'est un peu bricolage...
    Pour la 2nde partie de votre réponse, cela me rassure un peu, je n'ai donc pas à m'en préoccuper.
    Je cherche encore...

Discussions similaires

  1. lecture écriture dans un fichier
    Par poukill dans le forum C++
    Réponses: 9
    Dernier message: 23/05/2006, 11h02
  2. [VB6] Vérification des droits de lecture/écriture sur répert
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 01/02/2006, 18h41
  3. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  4. Lecture / écriture sur un port com
    Par dorian833 dans le forum C++
    Réponses: 7
    Dernier message: 07/07/2005, 15h20
  5. [communication série] problème lecture/écriture
    Par davinout dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 01/06/2005, 13h14

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