Exemplo n.º 1
0
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)
Exemplo n.º 3
0
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()