首页 > 解决方案 > FTPSHook Airflow(数据通道需要 522 SSL/TLS)

问题描述

我正在尝试使用 FTPSHook 通过 FTP TLS/SSL 显式加密发送文件。这是我的代码

remote_filepath=pathfile
local_filepath=pathfile2
hook = FTPSHook(ftp_conn_id='ftp_test')
hook.store_file(remote_filepath, local_filepath) 

运行 DAG 时出现此错误:

522 数据通道需要 SSL/TLS

以前有人做过吗?如何确保与 的连接FTPSHook

标签: pythonsslftpairflowftplib

解决方案


默认情况下,ftplib(用于 FTP(S) 的底层实现FTPSHook)不加密 FTP 数据连接。要启用它,您必须调用FTP_TLS.prot_p(). 使用FTPSHookAPI,您可以这样做:

hook = FTPSHook(ftp_conn_id='ftp_test')
hook.get_conn().prot_p()

推荐阅读