airflow.providers.sftp.operators.sftp¶
该模块包含 SFTP 运算符。
类¶
可用于 SFTP 的操作。 |
|
SFTPOperator 用于在远程主机与本地之间传输文件,或反向传输。 |
模块内容¶
- class airflow.providers.sftp.operators.sftp.SFTPOperator(*, sftp_hook=None, ssh_conn_id=None, remote_host=None, local_filepath=None, remote_filepath, operation=SFTPOperation.PUT, confirm=True, create_intermediate_dirs=False, concurrency=1, prefetch=True, **kwargs)[source]¶
Bases:
airflow.providers.common.compat.sdk.BaseOperatorSFTPOperator 用于在远程主机与本地之间传输文件,或反向传输。
此运算符使用 sftp_hook 打开 SFTP 传输通道,作为文件传输的基础。
- 参数:
ssh_conn_id (str | None) – 来自 ssh connection id 的 Airflow Connection。
sftp_hook (airflow.providers.sftp.hooks.sftp.SFTPHook | None) – 预定义的 SFTPHook。使用时需提供 sftp_hook 或 ssh_conn_id 其中之一。
remote_host (str | None) – 要连接的远程主机(支持模板),可为 None。如果提供,则会替代在 sftp_hook 中定义的 remote_host,或在 ssh_conn_id 的连接中预定义的 remote_host。
local_filepath (str | list[str] | None) – 本地文件路径或本地文件路径列表,用于获取或上传。(支持模板)
remote_filepath (str | list[str]) – 远程文件路径或远程文件路径列表,用于获取、上传或删除。(支持模板)
operation (str) – 指定操作 ‘get’、‘put’ 或 ‘delete’,默认为 put。
confirm (bool) – 指定是否确认 SFTP 操作,默认 True。
create_intermediate_dirs (bool) –
在从远程复制到本地或反向复制时创建缺失的中间目录。默认 False。
示例:以下任务会将
file.txt复制到远程主机的/tmp/tmp1/tmp2/目录,并在不存在时创建tmp、tmp1和tmp2。如果未传入该参数,则会因目录不存在而报错。put_file = SFTPOperator( task_id="test_sftp", ssh_conn_id="ssh_default", local_filepath="/tmp/file.txt", remote_filepath="/tmp/tmp1/tmp2/file.txt", operation="put", create_intermediate_dirs=True, dag=dag, )
concurrency (int) – 传输目录时的线程数。每个线程会打开一个新的 SFTP 连接。该参数仅在传输目录时使用,对单个文件无效。(默认 1)
prefetch (bool) – 控制是否执行预取(默认:True)
- template_fields: collections.abc.Sequence[str] = ('local_filepath', 'remote_filepath', 'remote_host')[source]¶