首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变FTP服务器的目录(ftplib,pyftpdlib)

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

Stack Overflow用户
提问于 2019-04-16 20:07:41
回答 1查看 1.6K关注 0票数 2

我试图通过Python、pyftpdlibftplib创建客户机/服务器FTP。

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

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

我连接到服务器:

代码语言:javascript
复制
from ftplib import FTP
import os
ftp = FTP('')
ftp.connect('localhost',1024)
ftp.login(user='user', passwd = '12345')

在python控制台输出消息“登录成功”时,我可以这样做。

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

如果我使用print(ftp.pwd()),我会返回:

代码语言:javascript
复制
'/'

在Windows上这对我来说没有多大意义。

我假设是C:\,但是如果我试图改变目录,

代码语言:javascript
复制
ftp.cwd(r"/Users/Moondra/Desktop/")
ftp.cwd(r"Users\Moondra\Desktop")
ftp.cwd(r"\Users\Moondra\Desktop")

我得到:

ftplib.error_perm: 550没有这样的文件或目录。

那么,为什么我在更改我的目录时遇到困难呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 05:49:20

您已经将您的user根植到目录中,您在该目录中启动了您的FTP服务器:

代码语言:javascript
复制
authorizer.add_user("user", "12345", ".", perm="elradfmw")

.的意思是“此/当前工作目录”。这只对测试目的有意义,但不适用于生产用途。

如果您想让用户访问整个驱动器,请将其根目录在那里。这可能会做到:

代码语言:javascript
复制
authorizer.add_user("user", "12345", "C:\\", perm="elradfmw")

尽管出于安全原因,您应该限制用户。

也许是这样的:

代码语言:javascript
复制
authorizer.add_user("user", "12345", "C:\\Users\\Moondra", perm="elradfmw")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55715888

复制
相关文章

相似问题

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