如何解决如何修复:上传文件时出错:[WinError 10049] 请求的地址在其上下文中无效
[WinError 10049] 请求的地址在其上下文中无效。
我的 vsftpd.conf
listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_min_port=40000
pasv_max_port=50000
pasv_address=0.0.0.0
userlist_enable=NO
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
我的代码
def connect_ftp():
ftp = FTP_TLS(timeout=20)
ftp.connect('my_server',21)
ftp.auth()
ftp.prot_p()
ftp.login(user= 'pnhuong',passwd='76210119')
ftp.set_pasv(True)
ftp.cwd("/files")
return ftp
def upload_file(ftp_connection,upload_file_path):
try:
upload_file1 = open(os.path.join(upload_file_path),'r')
print('Uploading ' + upload_file_path + "...")
ftp_connection.storbinary('STOR ' + upload_file_path,upload_file1)
ftp_connection.quit()
ftp_connection.close()
upload_file.close()
print('Upload finished.')
except Exception as e:
print("Error uploading file: " + str(e))
我尝试使用 FileZilla 上传图片并且成功。 请帮我修正这个错误。
错误源自:
ftp_connection.storbinary('STOR ' + upload_file_path,upload_file1)
解决方法
您的 FTP 服务器配置错误。 pasv_address
指令必须设置为您的 FTP 服务器的地址。 0.0.0.0
绝对无效。
pasv_address=0.0.0.0
虽然 FileZilla 可以启发式地解决这个问题,但许多其他 FTP 客户端和库将(理所当然地)失败。我相信您会在 FileZilla 日志文件中找到它:
命令:PASV
响应:227 进入被动模式 (0,X,Y)。
状态:服务器发送带有不可路由地址的被动回复。改用服务器地址。
但请注意,如果服务器具有 IPv6 地址,则 vsftpd 有一个错误。所以你也可以检查一下:
vsftpd returns 0,0 in response to PASV
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。