def do_run(self, options, args): try: fs_url = args[0] except IndexError: fs_url = './' fs, path = self.open_fs(fs_url) if fs.isdir(path): fs = fs.opendir(path) path = '/' self.output("Opened %s\n" % fs, verbose=True) port = options.port try: if options.type == 'http': from fs.expose.http import serve_fs if port is None: port = 80 self.output("Starting http server on %s:%i\n" % (options.addr, port), verbose=True) serve_fs(fs, options.addr, port) elif options.type == 'rpc': from fs.expose.xmlrpc import RPCFSServer if port is None: port = 80 s = RPCFSServer(fs, (options.addr, port)) self.output("Starting rpc server on %s:%i\n" % (options.addr, port), verbose=True) s.serve_forever() elif options.type == 'sftp': from fs.expose.sftp import BaseSFTPServer import logging log = logging.getLogger('paramiko') if options.debug: log.setLevel(logging.DEBUG) elif options.verbose: log.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) log.addHandler(ch) if port is None: port = 22 server = BaseSFTPServer((options.addr, port), fs) try: self.output("Starting sftp server on %s:%i\n" % (options.addr, port), verbose=True) server.serve_forever() except Exception, e: pass finally: server.server_close()
def do_run(self, options, args): try: fs_url = args[0] except IndexError: fs_url = './' fs, path = self.open_fs(fs_url) if fs.isdir(path): fs = fs.opendir(path) path = '/' self.output("Opened %s\n" % fs, verbose=True) port = options.port try: if options.type == 'http': from fs.expose.http import serve_fs if port is None: port = 80 self.output("Starting http server on %s:%i\n" % (options.addr, port), verbose=True) serve_fs(fs, options.addr, port) elif options.type == 'rpc': from fs.expose.xmlrpc import RPCFSServer if port is None: port = 80 s = RPCFSServer(fs, (options.addr, port)) self.output("Starting rpc server on %s:%i\n" % (options.addr, port), verbose=True) s.serve_forever() elif options.type == 'ftp': from fs.expose.ftp import serve_fs if port is None: port = 21 self.output("Starting ftp server on %s:%i\n" % (options.addr, port), verbose=True) serve_fs(fs, options.addr, port) elif options.type == 'sftp': from fs.expose.sftp import BaseSFTPServer import logging log = logging.getLogger('paramiko') if options.debug: log.setLevel(logging.DEBUG) elif options.verbose: log.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) log.addHandler(ch) if port is None: port = 22 server = BaseSFTPServer((options.addr, port), fs) try: self.output("Starting sftp server on %s:%i\n" % (options.addr, port), verbose=True) server.serve_forever() except Exception, e: pass finally: server.server_close()
def makeServer(self, fs, addr): return BaseSFTPServer(addr, fs)