can*_*izu 8 python ftp permissions denied
我正在学习使用Python进行Web编程,而且基本上还是通过讲座/教程.
我正在尝试将文件上传到服务器.这是我的代码:
import ftplib
import sys
filename = sys.argv[1]
connect = ftplib.FTP("***.**.***.**")
connect.login("testuser","pass")
file = open(filename, "rb")
connect.storbinary("STOR " + filename, file)
connect.quit()
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
File "C:\Users\test\putfile.py", line 8, in <module>
connect.storbinary("STOR " + filename, file)
File "C:\Python27\lib\ftplib.py", line 471, in storbinary
conn = self.transfercmd(cmd, rest)
File "C:\Python27\lib\ftplib.py", line 376, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "C:\Python27\lib\ftplib.py", line 339, in ntransfercmd
resp = self.sendcmd(cmd)
File "C:\Python27\lib\ftplib.py", line 249, in sendcmd
return self.getresp()
File "C:\Python27\lib\ftplib.py", line 224, in getresp
raise error_perm, resp
ftplib.error_perm: 550 Permission denied.
Run Code Online (Sandbox Code Playgroud)
testuser应该具有写入文件的权限,因为该文件夹归他所有,并且他具有root权限(在sudoer文件中添加).
如果我添加这行,会发生同样的事情:
connect.cwd('/testfolder')
Run Code Online (Sandbox Code Playgroud)
我将得到error_perm:550无法更改目录.
但是我仍然可以正常读取现有文件(使用connect.retrlines("RETR"+ filename))
我对Python和Linux都很新,所以我不知道我在做什么.我需要一些帮助.
也许这可以帮助:
使用FTP不足以成为文件和目录的所有者.必须正确配置服务和守护程序FTP才能编写和创建文件等.
例如在Ubuntu中:
编辑/etc/vsftpd.conf
并在线
;write_enable=YES
Run Code Online (Sandbox Code Playgroud)
删除分号
最后重启服务:
sudo service vsftpd restart
Run Code Online (Sandbox Code Playgroud)
我会检查您是否在正确的位置。我遇到了同样的问题,然后我意识到我位于“ / public_html ” 上方的根文件夹中的原定位置,因此没有要输入的文件夹,并且我没有权限存储任何文件。
您可以通过以下方式检查自己的位置:
print connect.pwd()
Run Code Online (Sandbox Code Playgroud)
以及当前目录的内容是:
print ftplib.FTP.dir(connect)
Run Code Online (Sandbox Code Playgroud)
因此,如果您位于根目录(“ / ”)中“ / public_html ” 上方,并且想要将当前目录更改为“ / testfolder ”,则需要使用:
connect.cwd('/public_html/testfolder')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17131 次 |
| 最近记录: |