Je google des détails sur la commande FTP APPE, ce qui en fait, mais la plupart du site juste état seulement append. Ensuite, j'essaie la commande pour m'assurer qu'elle se comporte comme prévu.
Je conçois un expéditeur automatique FTP qui est utilisé pour envoyer un fichier journal d'une machine à un serveur pour la création de rapports. Je veux seulement envoyer la dernière ligne du fichier journal.
Lors de l'utilisation d'une commande APPE, elle ajoute en fait tout le contenu du fichier et l'ajoute à l'existant dans le serveur. Cela entraînera l'entrée de ligne en double.
La réponse: Pour faire le curriculum vitae du fichier si le dernier transfert a échoué, il n'y a pas de commande pour cela, mais nous avons besoin d'utiliser une séquence de commande pour y parvenir.
Le point clé ici est de rechercher votre fichier local sur le dernier octet téléchargé si vous utilisez la commande APPE ou en utilisant la commande REST. REST commencera le transfert sur cette position de début d'octet particulière. Je fin avec cette solution pour effectuer après la connexion établie:
Utilisez APPE (j'ai eu l'idée de journal FileZilla):
- Utiliser la taille pour vérifier le fichier existe et Utilisez-le comme marqueur de reprise.
- Ouvrir le système de fichiers local et rechercher sur le marqueur.
- Utilisez APPE pour télécharger et le serveur FTP l'ajoutera automatiquement.
Utilisez STOR REST (j'eu l'idée de edtFTPnet):
- Utiliser la taille pour vérifier le fichier existe et l'utiliser comme marqueur de reprise.
- Envoyer REST avec le résultat que vous obtenez de TAILLE pour dire au serveur FTP de commencer à écrire sur la position.
- Ouvrir le système de fichiers local et rechercher sur le marqueur.
- Utilisez STOR comme téléchargement normal.
Notez que tous les serveurs FTP ne prennent pas en charge les deux méthodes. Je vois FileZilla basculer de cette façon en fonction du serveur. Mon observation montre que l'utilisation de REST est la méthode standard. Le téléchargement peut également utiliser REST pour commencer le téléchargement sur la position d'octet donnée. N'oubliez pas que l'utilisation de la prise en charge de reprise pour le type de transfert ASCII produira un résultat inattendu, car Unix et Windows ont un nombre d'octets de rupture de ligne différent. Essayez de manipuler FileZilla pour voir le comportement dans le journal. Vous pouvez également consulter cette utile FTP open source pour bibliothèque .NET sur la façon dont ils le font. edtFTPnet