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
|
import multiprocessing
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
class SimpleFtpServer(multiprocessing.Process):
def __init__(self):
super().__init__()
self.authorizer = DummyAuthorizer()
handler = FTPHandler
handler.authorizer = self.authorizer
self.server = FTPServer(('127.0.0.1', 0), handler)
def run(self):
self.server.serve_forever()
def stop(self):
self.server.close_all()
self.server.close()
self.terminate()
self.join()
def allow_anonymous(self, cwd):
self.authorizer.add_anonymous(cwd)
def add_user(self, user, password, cwd):
self.authorizer.add_user(user, password, cwd, perm='elradfmwMT')
def base_url(self):
return 'ftp://127.0.0.1:{}'.format(self.server.address[1])
|