首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在用户登录后立即更改pyftpdlib的工作目录

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

Stack Overflow用户
提问于 2021-06-07 20:34:26
回答 1查看 66关注 0票数 0

我正在尝试使用pyftpdlib通过ftp提供文件。我能够运行一个示例服务器,但我正在寻找一种方法来更改工作目录的用户登录后的权利。

目前的情况是,登录后用户PWD总是返回'/‘(根目录):

代码语言:javascript
复制
ftp> pwd
257 "/" is the current directory. 

我希望在用户登录服务器后,自动更改其目录,让说'test‘,这样登录后返回PWD:

代码语言:javascript
复制
ftp> pwd
257 "/test" is the current directory. 

我查看了文档,发现有on_login()处理程序,但没有示例如何使用它。

任何想法都会有帮助。

我正在添加示例代码:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2021-06-07 20:55:51

只需将homedir参数更改为所需的路径:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67871701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档