我正在尝试使用pyftpdlib通过ftp提供文件。我能够运行一个示例服务器,但我正在寻找一种方法来更改用户登录后的工作目录
目前的情况是,用户登录后PWD总是返回'/'(根(:
ftp> pwd
257 "/" is the current directory.
我想在用户登录服务器后自动更改其目录,比如说"测试",这样PWD登录后返回:
ftp> pwd
257 "/test" is the current directory.
我查看了文档,发现有on_login((处理程序,但没有使用它的示例
任何想法都将有助于
我正在添加示例代码:
import os
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
def main():
authorizer = DummyAuthorizer()
authorizer.add_user('user', '12345', homedir='c:\temp', perm='elradfmwMT')
handler = FTPHandler
handler.authorizer = authorizer
address = ('', 21)
server = FTPServer(address, handler)
server.serve_forever()
if __name__ == '__main__':
main()
我还有一个文件夹c:\temp\test,我想自动切换到它,而不将其设置为根目录。根应保持c:\temp
只需将homedir参数更改为您想要的路径:
def main():
authorizer = DummyAuthorizer()
authorizer.add_user('user', 'pwd', homedir='/test', perm='elradfmwMT')
handler.authorizer = authorizer
server = FTPServer(('', 2121))
server.serve_forever()
if __name__ == "__main__":
main()
参考:https://pyftpdlib.readthedocs.io/en/latest/api.html