python - 更改 FTP 服务器的目录 (ftplib, pyftpdlib)
问题描述
我正在尝试通过 Python 库pyftpdlib
和ftplib
.
我创建了一个服务器,如下所示:
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import os
authorizer = DummyAuthorizer()
authorizer.add_user("user", "12345", ".", perm="elradfmw")
authorizer.add_anonymous(os.getcwd())
handler = FTPHandler
handler.authorizer = authorizer
address = ('',1024)
server = FTPServer((address), handler)
server.serve_forever()
我连接到服务器:
from ftplib import FTP
import os
ftp = FTP('')
ftp.connect('localhost',1024)
ftp.login(user='user', passwd = '12345')
当 python 控制台输出消息“登录成功”时,我可以做到这一点。
现在的问题是我不确定我在哪个目录以及如何更改目录。
如果我使用print(ftp.pwd())
我会回来:
'/'
在 Windows 上,这对我来说没有多大意义。
我假设是,C:\
但如果我尝试更改目录,
到
ftp.cwd(r"/Users/Moondra/Desktop/")
ftp.cwd(r"Users\Moondra\Desktop")
ftp.cwd(r"\Users\Moondra\Desktop")
我得到:
ftplib.error_perm: 550 没有这样的文件或目录。
那么为什么我在更改目录时遇到问题?
解决方案
您已将user
您的 FTP 服务器植根于以下目录:
authorizer.add_user("user", "12345", ".", perm="elradfmw")
.
表示“此/当前工作目录”。这仅适用于测试目的,但不适用于生产用途。
如果您想允许用户访问整个驱动器,请将其根植在那里。这可能应该这样做:
authorizer.add_user("user", "12345", "C:\\", perm="elradfmw")
尽管出于安全原因,您应该限制用户。
也许是这样的:
authorizer.add_user("user", "12345", "C:\\Users\\Moondra", perm="elradfmw")
推荐阅读
- python - 如何制作交互式箱线图 Python?
- python - 如何在 Odoo 13 的控制器中获取当前记录 ID
- assembly - 炸弹实验室:我正处于第三阶段的最后一步
- javascript - 在 debian 上安装 discord.js
- reactjs - 我的 productcontext 一直显示为未定义
- python - 使用 Mac:运行使用 pyinstaller 生成的应用程序文件时出现语法错误
- shared-libraries - 通过 PLT 访问共享库函数
- uitableview - 如何在我的 UITableViewController 中解决此问题
- java - Project Reactor:用 Mono 的结果丰富 Flux 的结果
- python - 在python中使用变量查询或过滤数据集