From c4fcaddb0e9074e95578d7b809abc9f76ed436a0 Mon Sep 17 00:00:00 2001 From: Travis Cunningham Date: Wed, 7 Oct 2015 10:55:23 -0400 Subject: [PATCH] Update fs.expose.ftp for compatibility with latest pyftpdlib. --- fs/expose/ftp.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/fs/expose/ftp.py b/fs/expose/ftp.py index 6dbfc92..01cb7a0 100644 --- a/fs/expose/ftp.py +++ b/fs/expose/ftp.py @@ -21,7 +21,10 @@ import errno from functools import wraps -from pyftpdlib import ftpserver +from pyftpdlib.authorizers import DummyAuthorizer +from pyftpdlib.filesystems import AbstractedFS +from pyftpdlib.handlers import FTPHandler +from pyftpdlib.servers import FTPServer from fs.path import * from fs.osfs import OSFS @@ -70,7 +73,7 @@ def __init__(self, **kwargs): setattr(self, attr, value) -class FTPFS(ftpserver.AbstractedFS): +class FTPFS(AbstractedFS): """ The basic FTP Filesystem. This is a bridge between a pyfs filesystem and pyftpdlib's AbstractedFS. This class will cause the FTP server to serve the given fs instance. @@ -232,7 +235,7 @@ def lexists(self, path): return True -class FTPFSHandler(ftpserver.FTPHandler): +class FTPFSHandler(FTPHandler): """ An FTPHandler class that closes the filesystem when done. """ @@ -283,10 +286,9 @@ def serve_fs(fs, addr, port): Creates a basic anonymous FTP server serving the given FS on the given address/port combo. """ - from pyftpdlib.contrib.authorizers import UnixAuthorizer ftp_handler = FTPFSHandler - ftp_handler.authorizer = ftpserver.DummyAuthorizer() + ftp_handler.authorizer = DummyAuthorizer() ftp_handler.authorizer.add_anonymous('/') ftp_handler.abstracted_fs = FTPFSFactory(fs) - s = ftpserver.FTPServer((addr, port), ftp_handler) + s = FTPServer((addr, port), ftp_handler) s.serve_forever()