Google Cloud Storage 传输算子到 SFTP

Google 有一项服务 Google Cloud Storage。此服务用于存储来自各种应用程序的大数据。SFTP(SSH 文件传输协议)是一种安全的文件传输协议。它通过 SSH 协议运行。它支持 SSH 的完整安全和认证功能。

先决条件任务

要使用这些算子,您必须执行以下操作

算子

使用 GCSToSFTPOperator 算子在 SFTP 和 Google Storage 之间传输文件。

使用 Jinja 模板source_bucketsource_objectdestination_pathimpersonation_chain 动态定义值。

复制单个文件

以下操作员复制单个文件。

tests/system/providers/google/cloud/transfers/example_gcs_to_sftp.py[源代码]

copy_file_from_gcs_to_sftp = GCSToSFTPOperator(
    task_id="file-copy-gsc-to-sftp",
    sftp_conn_id=SFTP_CONN_ID,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_FILE,
    destination_path=DESTINATION_PATH_1,
)

移动单个文件

要移动文件,请使用 move_object 参数。将文件复制到 SFTP 后,将删除 Google Storage 中的原始文件。 destination_path 参数定义 SFTP 服务器上文件的完整路径。

tests/system/providers/google/cloud/transfers/example_gcs_to_sftp.py[源代码]

move_file_from_gcs_to_sftp = GCSToSFTPOperator(
    task_id="file-move-gsc-to-sftp",
    sftp_conn_id=SFTP_CONN_ID,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_FILE_IN_DIR,
    destination_path=DESTINATION_PATH_1,
    move_object=True,
)

复制目录

source_path 参数中使用 wildcard 复制目录。

tests/system/providers/google/cloud/transfers/example_gcs_to_sftp.py[源代码]

copy_dir_from_gcs_to_sftp = GCSToSFTPOperator(
    task_id="dir-copy-gsc-to-sftp",
    sftp_conn_id=SFTP_CONN_ID,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_DIR,
    destination_path=DESTINATION_PATH_2,
)

移动特定文件

source_path 参数中使用 wildcard 移动特定文件。 destination_path 定义所有复制文件的前缀路径。

tests/system/providers/google/cloud/transfers/example_gcs_to_sftp.py[源代码]

move_dir_from_gcs_to_sftp = GCSToSFTPOperator(
    task_id="dir-move-gsc-to-sftp",
    sftp_conn_id=SFTP_CONN_ID,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_DIR,
    destination_path=DESTINATION_PATH_3,
    keep_directory_structure=False,
)

参考

有关详细信息,请参阅

此条目是否有用?