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

  • Britec09

    Britec09

    4 Mart 2009
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • Muse

    Muse

    28 EYLÜL 2006