airflow.providers.sftp.operators.sftp

该模块包含 SFTP 运算符。

SFTPOperation

可用于 SFTP 的操作。

SFTPOperator

SFTPOperator 用于在远程主机与本地之间传输文件,或反向传输。

模块内容

class airflow.providers.sftp.operators.sftp.SFTPOperation[source]

可用于 SFTP 的操作。

PUT = 'put'[source]
GET = 'get'[source]
DELETE = 'delete'[source]
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.BaseOperator

SFTPOperator 用于在远程主机与本地之间传输文件,或反向传输。

此运算符使用 sftp_hook 打开 SFTP 传输通道,作为文件传输的基础。

参数:
  • ssh_conn_id (str | None) – 来自 ssh connection id 的 Airflow Connection。

  • sftp_hook (airflow.providers.sftp.hooks.sftp.SFTPHook | None) – 预定义的 SFTPHook。使用时需提供 sftp_hookssh_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/ 目录,并在不存在时创建 tmptmp1tmp2。如果未传入该参数,则会因目录不存在而报错。

    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]
sftp_hook = None[source]
ssh_conn_id = None[source]
remote_host = None[source]
operation = 'put'[source]
confirm = True[source]
create_intermediate_dirs = False[source]
local_filepath = None[source]
remote_filepath[source]
concurrency = 1[source]
prefetch = True[source]
execute(context)[source]

在创建算子时派生。

执行任务的主要方法。Context 是与渲染 jinja 模板时使用的相同字典。

有关更多上下文,请参考 get_template_context。

get_openlineage_facets_on_start()[source]

返回 OpenLineage 数据集。

数据集将具有以下结构

输入:file://<local_host>/path 输出:file://<remote_host>:<remote_port>/path。

此条目是否有帮助?