|
21 | 21 | import errno
|
22 | 22 | from functools import wraps
|
23 | 23 |
|
24 |
| -from pyftpdlib import ftpserver |
| 24 | +from pyftpdlib.authorizers import DummyAuthorizer |
| 25 | +from pyftpdlib.filesystems import AbstractedFS |
| 26 | +from pyftpdlib.handlers import FTPHandler |
| 27 | +from pyftpdlib.servers import FTPServer |
25 | 28 |
|
26 | 29 | from fs.path import *
|
27 | 30 | from fs.osfs import OSFS
|
@@ -70,7 +73,7 @@ def __init__(self, **kwargs):
|
70 | 73 | setattr(self, attr, value)
|
71 | 74 |
|
72 | 75 |
|
73 |
| -class FTPFS(ftpserver.AbstractedFS): |
| 76 | +class FTPFS(AbstractedFS): |
74 | 77 | """
|
75 | 78 | The basic FTP Filesystem. This is a bridge between a pyfs filesystem and pyftpdlib's
|
76 | 79 | AbstractedFS. This class will cause the FTP server to serve the given fs instance.
|
@@ -232,7 +235,7 @@ def lexists(self, path):
|
232 | 235 | return True
|
233 | 236 |
|
234 | 237 |
|
235 |
| -class FTPFSHandler(ftpserver.FTPHandler): |
| 238 | +class FTPFSHandler(FTPHandler): |
236 | 239 | """
|
237 | 240 | An FTPHandler class that closes the filesystem when done.
|
238 | 241 | """
|
@@ -283,10 +286,9 @@ def serve_fs(fs, addr, port):
|
283 | 286 | Creates a basic anonymous FTP server serving the given FS on the given address/port
|
284 | 287 | combo.
|
285 | 288 | """
|
286 |
| - from pyftpdlib.contrib.authorizers import UnixAuthorizer |
287 | 289 | ftp_handler = FTPFSHandler
|
288 |
| - ftp_handler.authorizer = ftpserver.DummyAuthorizer() |
| 290 | + ftp_handler.authorizer = DummyAuthorizer() |
289 | 291 | ftp_handler.authorizer.add_anonymous('/')
|
290 | 292 | ftp_handler.abstracted_fs = FTPFSFactory(fs)
|
291 |
| - s = ftpserver.FTPServer((addr, port), ftp_handler) |
| 293 | + s = FTPServer((addr, port), ftp_handler) |
292 | 294 | s.serve_forever()
|
0 commit comments