ฉันกำลังทำงานกับเครื่องมือง่ายๆที่ถ่ายโอนไฟล์ไปยังตำแหน่งที่กำหนดรหัสผ่านด้วยรหัสผ่านและรหัสตายตัว ฉันเป็นงูหลามสามเณร แต่ต้องขอบคุณ ftplib มันง่ายมาก:
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)
ปัญหาคือฉันไม่พบห้องสมุดใด ๆ ที่รองรับ sFTP วิธีปกติในการทำสิ่งนี้อย่างปลอดภัยคืออะไร
แก้ไข: ขอบคุณคำตอบที่นี่ฉันได้รับมันทำงานร่วมกับ Paramiko และนี่คือไวยากรณ์
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.'
ขอบคุณอีกครั้ง!