Python:上传文件FTP_TLS-“550参数不正确”

问题描述 投票:0回答:3

我正在尝试使用 TLS 连接到 FTP 服务器并上传文本文件。下面的代码可以很好地连接到该网站,但它没有上传文件。相反,我收到以下错误:

Traceback (most recent call last):
  File "X:/HR & IT/Ryan/Python Scripts/ftps_connection_test.py", line 16, in <module>
    ftps.storlines("STOR " + filename, open(filename,"r"))
  File "C:\Python33\lib\ftplib.py", line 816, in storlines
    with self.transfercmd(cmd) as conn:
  File "C:\Python33\lib\ftplib.py", line 391, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "C:\Python33\lib\ftplib.py", line 756, in ntransfercmd
    conn, size = FTP.ntransfercmd(self, cmd, rest)
  File "C:\Python33\lib\ftplib.py", line 357, in ntransfercmd
    resp = self.sendcmd(cmd)
  File "C:\Python33\lib\ftplib.py", line 264, in sendcmd
    return self.getresp()
  File "C:\Python33\lib\ftplib.py", line 238, in getresp
    raise error_perm(resp)
ftplib.error_perm: 550 The parameter is incorrect. 

我可能缺少一些非常基本的东西,我的代码如下,非常感谢任何帮助。

import os
from ftplib import FTP_TLS as f

# Open secure connection
ftps = f("ftp.foo.com")
ftps.login(username,password)  
ftps.prot_p()                        

# Create the test txt file to upload 
filename = r"c:\path\to\file"
testFile = open(filename,"w")
testFile.write("Test file with test text")
testFile.close()

# Transfer testFile
ftps.storlines("STOR " + filename, open(filename,"r"))

# Quit connection
ftps.quit()
python ftp
3个回答
1
投票

尝试将文件上传到 FTP 服务器时,我遇到了同样的错误。就我而言,目标文件名的格式不正确。这就像

data_20180411T12:00:12.3435Z.txt

我重命名了类似的东西

data_20180411T120012_3435Z.txt
。然后就成功了。


0
投票
filename = r"c:\path\to\file"

是本地文件的绝对路径。同样的值正在

STOR
命令中传递,即

ftps.storlines("STOR " + filename, open(filename,"r"))

尝试执行

STOR c:\path\to\file
操作,但是远程服务器上不太可能存在该路径,并且
ftplib.error_perm
异常表明您没有权限在那里写入(即使它确实存在) ).

你可以试试这个:

ftps.storlines("STOR " + os.path.basename(filename), open(filename,"r"))

这将发出

STOR file
操作并将文件上传到远程服务器上的默认目录。如果您需要上传到远程服务器上的不同路径,只需将其添加到 STOR 即可。


0
投票

文件名 = r"c:\文件路径"

问题是“:”这个。我不知道为什么,但 ftp 不想要这个。把“:”改成别的东西就可以了。当您创建新文件名时。确保文件名不包含“:”或类似的特殊字符。

© www.soinside.com 2019 - 2024. All rights reserved.