有没有办法在用户登录后立即更改pyftpdlib的工作目录



我正在尝试使用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

最新更新