SORU
11 Ocak 2009, Pazar


Python SFTP? (platform bağımsız)

Transferler şifre ile kodlanmış bir konuma da kodlanmış dosyaları basit bir araç üzerinde çalışıyorum. Python bir acemi değilim, ama teşekkür ederim ftplib için kolay oldu:

import ftplib

info= ('someuser', 'password')    #hard-coded

def putfile(file, site, dir, user=(), verbose=True):
    """
    upload a file by ftp to a site/directory
    login hard-coded, binary transfer
    """
    if verbose: print 'Uploading', file
    local = open(file, 'rb')    
    remote = ftplib.FTP(site)   
    remote.login(*user)         
    remote.cwd(dir)
    remote.storbinary('STOR '   file, local, 1024)
    remote.quit()
    local.close()
    if verbose: print 'Upload done.'

if __name__ == '__main__':
    site = 'somewhere.com'            #hard-coded
    dir = './uploads/'                #hard-coded
    import sys, getpass
    putfile(sys.argv[1], site, dir, user=info)

Sorun sFTP destekleyen herhangi bir kütüphane bulamadım. Bu güvenli gibi bir şey yapmak için normal yolu nedir?

Edit: burada, Paramiko ile çalışma fırsatım oldu. bu sözdizimi oldu cevaplar için Teşekkürler.

import paramiko

host = "THEHOST.com"                    #hard-coded
port = 22
transport = paramiko.Transport((host, port))

password = "THEPASSWORD"                #hard-coded
username = "THEUSERNAME"                #hard-coded
transport.connect(username = username, password = password)

sftp = paramiko.SFTPClient.from_transport(transport)

import sys
path = './THETARGETDIRECTORY/'   sys.argv[1]    #hard-coded
localpath = sys.argv[1]
sftp.put(localpath, path)

sftp.close()
transport.close()
print 'Upload done.'

Tekrar teşekkürler!

CEVAP
11 Ocak 2009, Pazar


Paramiko SFTP destekler. Kullandım ve Çarpık kullandım. Her iki yeri var, ama daha kolay Paramiko başlamak için bulabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012