FTPSHook Airflow(数据通道需要 522 SSL/TLS)

FTPSHook Airflow (522 SSL/TLS required on the data channel)

我正在尝试使用 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 required on the data channel

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

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

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