def __init__(self, parent, host, user, passwd, home_dir, log): # pull settings self.parent = parent self.home_dir = unicode(home_dir) host = host.split(':') host[1] = int(host[1]) # create authorizer authorizer = HumbleAuthorizer() authorizer.add_user(user, passwd, home_dir, perm="elradfmw") # create filesystem #virtual_fs = VirtualFS filesystem = HumbleAbstractedFS filesystem.parent = self # create handler handler = HumbleFTPHandler handler.parent = self handler.logger = log handler.authorizer = authorizer handler.passive_ports = range(60000, 65535) handler.abstracted_fs = filesystem # virtual_fs # real_fs # setup virtual fs # real_fs = HumbleAbstractedFS(self.home_dir, handler) # real_fs.parent = self # virtual_fs.structure = {'workspace': real_fs} # init self self.logger = log FTPServer.__init__(self, host, handler) self.max_cons = 256 self.max_cons_per_ip = 5
def __init__(self, port, exposed_dir, username='', password=''): self.exposed_dir = exposed_dir authorizer = DummyAuthorizer() if username: authorizer.add_user(username, password, '.', perm=('elradfmwM')) else: authorizer.add_anonymous(exposed_dir, perm=('elradfmwM')) address = ('0.0.0.0', port) handler = FTPHandler handler.authorizer = authorizer ThreadedFTPServer.__init__(self, address, handler)