Google Cloud Storage Transfer Operator to SFTP

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

先决条件任务

要使用这些操作符,您必须执行以下几项操作

操作符

SFTP 和 Google Storage 之间的文件传输使用 GCSToSFTPOperator 操作符执行。

使用 Jinja 模板source_bucket, source_object, destination_path, impersonation_chain 动态定义值。

复制单个文件

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

tests/system/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/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/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/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,
)

参考

有关更多信息,请参阅

此条目是否有帮助?