Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
More Jobs
Recent
brute-force password cracker
Highlight Selected forms, Set default vaues, Rails, JS, Lowpro
nested array to set of html anchor tags
Prime or Not
Open hours grouping
Search nested hash
Search with fulltext, ago-condition and category
Permutation of values
Drop all Indexes in SQL Server
Simple For Loop
Popular
Small Javascript Code
Simple For Loop
Drop all Indexes in SQL Server
Permutation of values
Search with fulltext, ago-condition and category
Prime or Not
Highlight Selected forms, Set default vaues, Rails, JS, Lowpro
nested array to set of html anchor tags
Parsing non-delimited text
Toggle "Check all / Uncheck all" with jQuery
Pastable version of
sendfile.SftpSClient
<div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111</pre> <pre class="sunburst"><span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>!/usr/bin/env python</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> #########################</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> # $Id: sendfile.py,v 1.4 2008/03/19 11:59:52 dhylton Exp $</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> # $Log: $</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> #########################</span> <span style="color:#E28964;">import</span> time <span style="color:#E28964;">import</span> os <span style="color:#E28964;">import</span> sys <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>import paramiko</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>import ftplib</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>import pycurl</span> <span style="color:#99CF50;">class</span> <span style="text-decoration:underline;">SftpSClient</span> (<span style="color:#9B5C2E;font-style:italic;"><span style="color:#9B859D;">object</span></span>): <span style="color:#99CF50;">def</span> <span style="color:#89BDFF;"><span style="color:#DAD085;">__init__</span></span>(<span style="color:#3E87E3;">self</span>, <span style="color:#3E87E3;">protocol</span>, <span style="color:#3E87E3;">hostname</span>, <span style="color:#3E87E3;">hostport</span>, <span style="color:#3E87E3;">username</span>, <span style="color:#3E87E3;">password</span>, <span style="color:#3E87E3;">source_path</span>, <span style="color:#3E87E3;">dest_path</span>): <span style="color:#3E87E3;">self</span>.protocol <span style="color:#E28964;">=</span> protocol <span style="color:#3E87E3;">self</span>.hostname <span style="color:#E28964;">=</span> hostname <span style="color:#3E87E3;">self</span>.hostport <span style="color:#E28964;">=</span> hostport <span style="color:#3E87E3;">self</span>.username <span style="color:#E28964;">=</span> username <span style="color:#3E87E3;">self</span>.password <span style="color:#E28964;">=</span> password <span style="color:#3E87E3;">self</span>.source_path <span style="color:#E28964;">=</span> source_path <span style="color:#3E87E3;">self</span>.dest_path <span style="color:#E28964;">=</span> dest_path <span style="color:#E28964;">if</span> <span style="color:#3E87E3;">self</span>.protocol <span style="color:#E28964;">==</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>sftp<span style="color:#65B042;">"</span></span>: <span style="color:#E28964;">import</span> paramiko <span style="color:#3E87E3;">self</span>.client <span style="color:#E28964;">=</span> paramiko.SSHClient() <span style="color:#3E87E3;">self</span>.client.load_system_host_keys() <span style="color:#E28964;">elif</span> <span style="color:#3E87E3;">self</span>.protocol <span style="color:#E28964;">==</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>ftps<span style="color:#65B042;">"</span></span>: <span style="color:#E28964;">import</span> pycurl <span style="color:#3E87E3;">self</span>.client <span style="color:#E28964;">=</span> pycurl.Curl() <span style="color:#E28964;">else</span>: <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>self.protocol == "ftp":</span> <span style="color:#E28964;">import</span> ftplib <span style="color:#3E87E3;">self</span>.client <span style="color:#E28964;">=</span> ftplib.FTP() <span style="color:#99CF50;">def</span> <span style="color:#89BDFF;">xfer</span>(<span style="color:#3E87E3;">self</span>, <span style="color:#3E87E3;">source_file</span>, <span style="color:#3E87E3;">dest_file</span><span style="color:#E28964;">=</span><span style="color:#3387CC;">None</span>): <span style="color:#E28964;">if</span> <span style="color:#E28964;">not</span> dest_file: dest_file <span style="color:#E28964;">=</span> source_file source <span style="color:#E28964;">=</span> os.path.join(<span style="color:#3E87E3;">self</span>.source_path, source_file) dest <span style="color:#E28964;">=</span> os.path.join(<span style="color:#3E87E3;">self</span>.dest_path, dest_file) <span style="color:#E28964;">if</span> <span style="color:#3E87E3;">self</span>.protocol <span style="color:#E28964;">==</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>sftp<span style="color:#65B042;">"</span></span>: <span style="color:#E28964;">if</span> <span style="color:#E28964;">not</span> <span style="color:#3E87E3;">self</span>.hostport: <span style="color:#3E87E3;">self</span>.hostport <span style="color:#E28964;">=</span> <span style="color:#3387CC;">22</span> <span style="color:#3E87E3;">self</span>.client.connect(<span style="color:#3E87E3;">self</span>.hostname, <span style="color:#3E87E3;">self</span>.hostport, <span style="color:#3E87E3;">self</span>.username, <span style="color:#3E87E3;">self</span>.password) sftp_client <span style="color:#E28964;">=</span> <span style="color:#3E87E3;">self</span>.client.open_sftp() sftp_client.put(source, dest) sftp_client.close() <span style="color:#E28964;">elif</span> <span style="color:#3E87E3;">self</span>.protocol <span style="color:#E28964;">==</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>ftps<span style="color:#65B042;">"</span></span>: <span style="color:#E28964;">if</span> <span style="color:#E28964;">not</span> <span style="color:#3E87E3;">self</span>.hostport: <span style="color:#3E87E3;">self</span>.hostport <span style="color:#E28964;">=</span> <span style="color:#3387CC;">990</span> userpwd <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#DDF2A4;">%s</span>:<span style="color:#DDF2A4;">%s</span><span style="color:#65B042;">'</span></span> <span style="color:#E28964;">%</span> (<span style="color:#3E87E3;">self</span>.username, <span style="color:#3E87E3;">self</span>.password) infile <span style="color:#E28964;">=</span> <span style="color:#9B859D;">open</span>(source, <span style="color:#65B042;"><span style="color:#65B042;">'</span>rb<span style="color:#65B042;">'</span></span>) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.URL, <span style="color:#65B042;"><span style="color:#65B042;">'</span>ftp://<span style="color:#DDF2A4;">%s</span>:<span style="color:#DDF2A4;">%d</span>/<span style="color:#DDF2A4;">%s</span><span style="color:#65B042;">'</span></span> <span style="color:#E28964;">%</span> (<span style="color:#3E87E3;">self</span>.hostname, <span style="color:#3E87E3;">self</span>.hostport, dest)) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.FTP_SSL, <span style="color:#3387CC;">1</span>) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.FTPSSLAUTH, <span style="color:#3387CC;">1</span>) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.SSL_VERIFYHOST, <span style="color:#3387CC;">1</span>) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.SSL_VERIFYPEER, <span style="color:#3387CC;">1</span>) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.USERPWD, userpwd) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.READDATA, infile) <span style="color:#3E87E3;">self</span>.client.setopt(pycurl.UPLOAD, <span style="color:#3387CC;">1</span>) <span style="color:#3E87E3;">self</span>.client.perform() infile.close() <span style="color:#E28964;">else</span>: <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>self.protocol == "ftp":</span> <span style="color:#E28964;">if</span> <span style="color:#E28964;">not</span> <span style="color:#3E87E3;">self</span>.hostport: <span style="color:#3E87E3;">self</span>.hostport <span style="color:#E28964;">=</span> <span style="color:#3387CC;">21</span> <span style="color:#3E87E3;">self</span>.client.connect(<span style="color:#3E87E3;">self</span>.hostname, <span style="color:#3E87E3;">self</span>.hostport) <span style="color:#3E87E3;">self</span>.client.login(<span style="color:#3E87E3;">user</span><span style="color:#E28964;">=</span><span style="color:#3E87E3;">self</span>.username, <span style="color:#3E87E3;">passwd</span><span style="color:#E28964;">=</span><span style="color:#3E87E3;">self</span>.password) <span style="color:#3E87E3;">self</span>.client.set_pasv(<span style="color:#3387CC;">False</span>) infile <span style="color:#E28964;">=</span> <span style="color:#9B859D;">open</span>(source, <span style="color:#65B042;"><span style="color:#65B042;">'</span>rb<span style="color:#65B042;">'</span></span>) <span style="color:#3E87E3;">self</span>.client.storbinary(<span style="color:#65B042;"><span style="color:#65B042;">'</span>STOR <span style="color:#65B042;">'</span></span> <span style="color:#E28964;">+</span> dest, infile) infile.close() <span style="color:#99CF50;">def</span> <span style="color:#89BDFF;">main</span>(): hostname <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>localhost<span style="color:#65B042;">'</span></span> username <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>snark<span style="color:#65B042;">'</span></span> password <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>Bgt54rfv<span style="color:#65B042;">'</span></span> source_path <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>lo cal<span style="color:#65B042;">'</span></span> source_file <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>test file'132<span style="color:#65B042;">"</span></span> dest_file <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>remote test file'133<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">print</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>testing ftp<span style="color:#65B042;">'</span></span> protocol <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>ftp<span style="color:#65B042;">'</span></span> hostport <span style="color:#E28964;">=</span> <span style="color:#3387CC;">None</span> start <span style="color:#E28964;">=</span> time.time() dest_path <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#DDF2A4;">%s</span>/re mote<span style="color:#65B042;">'</span></span> <span style="color:#E28964;">%</span> (protocol) p <span style="color:#E28964;">=</span> SftpSClient(protocol, hostname, hostport, username, password, source_path, dest_path) p.xfer(source_file, dest_file) elapsedtime <span style="color:#E28964;">=</span> time.time() <span style="color:#E28964;">-</span> start <span style="color:#E28964;">print</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>elapsed time:<span style="color:#65B042;">'</span></span>, elapsedtime <span style="color:#E28964;">print</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>testing ftps<span style="color:#65B042;">'</span></span> protocol <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>ftps<span style="color:#65B042;">'</span></span> hostport <span style="color:#E28964;">=</span> <span style="color:#3387CC;">990</span> start <span style="color:#E28964;">=</span> time.time() dest_path <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#DDF2A4;">%s</span>/re mote<span style="color:#65B042;">'</span></span> <span style="color:#E28964;">%</span> (protocol) p <span style="color:#E28964;">=</span> SftpSClient(protocol, hostname, hostport, username, password, source_path, dest_path) p.xfer(source_file, dest_file) elapsedtime <span style="color:#E28964;">=</span> time.time() <span style="color:#E28964;">-</span> start <span style="color:#E28964;">print</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>elapsed time:<span style="color:#65B042;">'</span></span>, elapsedtime <span style="color:#E28964;">print</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>testing sftp<span style="color:#65B042;">'</span></span> protocol <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>sftp<span style="color:#65B042;">'</span></span> hostport <span style="color:#E28964;">=</span> <span style="color:#3387CC;">22</span> start <span style="color:#E28964;">=</span> time.time() dest_path <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#DDF2A4;">%s</span>/re mote<span style="color:#65B042;">'</span></span> <span style="color:#E28964;">%</span> (protocol) p <span style="color:#E28964;">=</span> SftpSClient(protocol, hostname, hostport, username, password, source_path, dest_path) p.xfer(source_file, dest_file) elapsedtime <span style="color:#E28964;">=</span> time.time() <span style="color:#E28964;">-</span> start <span style="color:#E28964;">print</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>elapsed time:<span style="color:#65B042;">'</span></span>, elapsedtime <span style="color:#E28964;">if</span> <span style="color:#9B859D;">__name__</span> <span style="color:#E28964;">==</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>__main__<span style="color:#65B042;">'</span></span>: main() </pre> </div> </div> <a href="http://refactormycode.com/codes/263-sendfile-sftpsclient" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://refactormycode.com/images/small_logo.gif" style="border:0" /></a>