SFTPoperator获取多个文件

har*_*ram 5 google-cloud-platform airflow

如何使用 SFTPOperator 从 SFTP 服务器获取多个文件。我可以在云 shell 中使用 bash MGET 来完成此操作,但我不知道如何多次获取 AIRFLOW 的 SFTPOperator

Vir*_*ekh 3

你可以这样做:

files = [
{'name':'file_name',
'connection': 'sftp_conn_one'},

{'name':'file_name',
'connection': 'sftp_conn_two'},

]


d = DummyOperator(task_id='kick_off_dag')

for file in files:
     task = SFTPOperator(
     task_id = 'get_{0}'.format(file['name']),
     ssh_conn_id = file['connection']
     ...
    )

    d >> task
Run Code Online (Sandbox Code Playgroud)

这应该为您想要获取的每个文件生成一个任务。您甚至可以将此文件列表存储在气流变量中