def init_server_and_run(handler): address = ('0.0.0.0', 21) server = MultiprocessFTPServer(address, handler) # set a limit for connections server.max_cons = 2048 server.max_cons_per_ip = 2048 # start ftp server server.serve_forever() server.close_all()
def tw_ftp_server(): """ thread worker for the ftp server """ authorizer = DummyAuthorizer() authorizer.add_user('user', '12345', ftp_root_dir, perm='elradfmwMT') # Instantiate FTP handler class handler = FTPHandler handler.authorizer = authorizer server = MultiprocessFTPServer(('', port), handler) server.max_cons = 256 server.max_cons_per_ip = 10 # start ftp server while self._com_queue.empty(): server.serve_forever(timeout=0.1, blocking=False) self._com_queue.get() server.close_all() time.sleep(1)
class ftp_server: #Starts up FTP Server def __init__(self, ip='', port=2121, logs_from_pyftpdlib=False, anonymous_can_write=False): if not logs_from_pyftpdlib: ftp_log.LEVEL = ftp_log.logging.ERROR self._anonymous_can_write = anonymous_can_write self.ip = ip self.port = port #Starts up a Thread so that the main program does not hang Thread(target=self.main_ftp).start() #Waits for main_ftp to reach serve_forever time.sleep(1) return #Main FTP Server Thread def main_ftp(self): self.authorizer = DummyAuthorizer() if self._anonymous_can_write: self.authorizer.add_anonymous("nobody", perm="elradfmwM") else: self.authorizer.add_anonymous("nobody") handler = FTPHandler handler.authorizer = self.authorizer self.server = MultiprocessFTPServer((self.ip, self.port), handler) self.server.serve_forever(timeout=5) #Add user to FTP Server def add_user(self, user, password, root_folder, give_write_permition=True): if give_write_permition: self.authorizer.add_user(user, password, root_folder, perm="elradfmwM") else: self.authorizer.add_user(user, password, root_folder) print('[FTP SERVER] User Added: '+user) def clean_up(self): self.server.close_all()