Le format du dir/ls de (P)SFTP est-il standard ?
-
13-09-2020 - |
Question
Je prépare quelque chose pour télécharger des fichiers via SFTP.J'utilise PuTTY psftp.exe
commande.
Quand je fais un dir
/ls
dans PSFTP, le format de sortie est-il standardisé, soit par SFTP, soit par PSFTP lui-même ?Ou s'agit-il simplement du texte libre que le serveur envoie en réponse ?
Je demande parce que je crois au FTP (à l'époque !), il n'était pas du tout standardisé et je n'ai qu'un seul serveur SFTP ici pour tester.
La solution
Contrairement à FTP (qui utilisait du texte LIST
sortie), le protocole SFTP est basé sur des structures binaires, donc Putty effectue tout le formatage.Plus précisément, il utilise le SSH_FXP_READDIR commande pour lire les entrées du répertoire, qui sont renvoyées dans le format spécifié par SSH_FXP_NAME.
Idéalement, vous utiliseriez une API plutôt que psftp.Mais si vous choisissez d'analyser le texte, vous devez vous soucier de PuTTY et uniquement de PuTTY.
Mon erreur. Le nouveau projet J'ai regardé, il n'y a pas un tel texte longname
champ.Cependant, Versions plus anciennes faire.
Autres conseils
Matthew, le client local peut choisir d'afficher les informations sur le nom long créneaux du SSH_FXP_NAME réponse au lieu de la générer localement à partir du nom de fichier et attributs créneaux.
Sans regarder comment psftp le fait en interne, vous ne pouvez pas être complètement sûr que son format ne changera pas lors de la connexion à un autre serveur.