Google Cloud Storage 传输算子到 SFTP¶
Google 有一项服务 Google Cloud Storage。此服务用于存储来自各种应用程序的大数据。SFTP(SSH 文件传输协议)是一种安全的文件传输协议。它通过 SSH 协议运行。它支持 SSH 的完整安全和认证功能。
先决条件任务¶
要使用这些算子,您必须执行以下操作
使用 Cloud 控制台 选择或创建 Cloud Platform 项目。
为您的项目启用帐单,如 Google Cloud 文档 中所述。
启用 API,如 Cloud 控制台文档 中所述。
通过 pip 安装 API 库。
pip install 'apache-airflow[google]'有关 安装 的详细信息可供参考。
算子¶
使用 GCSToSFTPOperator
算子在 SFTP 和 Google Storage 之间传输文件。
使用 Jinja 模板 和 source_bucket
、source_object
、destination_path
、impersonation_chain
动态定义值。
复制单个文件¶
以下操作员复制单个文件。
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 服务器上文件的完整路径。
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
复制目录。
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
定义所有复制文件的前缀路径。
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,
)