2009-10-24 6 views
1

Comment entrer un répertoire comme la commande - cd, donc opérer des fichiers distants sans préfixe de chemin?Comment entrer un répertoire distant sur Ruby NET: SFTP?

Voici mon code actuel.

Net::SFTP.start do |sftp| 
    sftp.rename!(REMOTE_PATH + "latest.zip", REMOTE_PATH + "latest.back.zip") 
    sftp.upload!("latest.zip", REMOTE_PATH + "latest.zip") 
end 

Je voudrais avoir:

sftp.cd REMOTE_PATH  
sftp.rename!("latest.zip", "latest.back.zip") 
sftp.upload!("latest.zip", "latest.zip") 

Répondre

0

J'ai trouvé une solution, ce qui est d'utiliser SSH connecter à la place.. Pas de travail. Le chemin SFTP ne semble pas pertinent pour le chemin SSH. Faites-moi savoir si vous avez d'autres options.

Net::SSH.start("localhost", "user", "password") do |ssh| 
    ssh.sftp.upload!("/local/file.tgz", "/remote/file.tgz") 
    ssh.exec! "cd /some/path && tar xf /remote/file.tgz && rm /remote/file.tgz" 
    end 
+1

Vous avez raison. SFTP ne suit pas réellement FTP en vous permettant de changer le répertoire distant. Si la mémoire me sert bien, SFTP vous dépose toujours dans le répertoire racine SSH et vous y êtes coincé. Envoyer un CD distant semble être le seul moyen de se déplacer. –

Questions connexes