更改FTP服务器的目录(ftplib,pyftpdlib)

2024-06-16 10:11:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过Python库pyftpdlib和{}创建客户机/服务器FTP。在

我创建了一个服务器,如下所示:

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()

我连接到服务器:

^{pr2}$

当python控制台输出一条消息“login successful”时,我可以这样做。在

现在的问题是我不知道我在哪个目录,以及如何更改目录。在

如果我使用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 No such file or directory.

为什么我要换目录?在


Tags: fromimport服务器目录ftpusershandlerdesktop
1条回答
网友
1楼 · 发布于 2024-06-16 10:11:06

您已将user根目录,从中启动FTP服务器:

authorizer.add_user("user", "12345", ".", perm="elradfmw")

.表示“this/current working directory”。这对于测试目的来说是有意义的,但对于生产用途来说却没有意义。在


如果你想让用户访问一个完整的驱动器,那就在那里建立根目录。这可能会:

^{pr2}$

但是出于安全原因,您应该限制用户。在

可能是这样的:

authorizer.add_user("user", "12345", "C:\\Users\\Moondra", perm="elradfmw")

相关问题 更多 >