Google Cloud Storage 传输运算符到 Samba

Google 有一项服务 Google Cloud Storage。此服务用于存储来自各种应用程序的大量数据。Samba 是适用于 Linux 和 Unix 的标准 Windows 互操作性程序套件。Samba 为使用 SMB/CIFS 协议的客户端提供了安全、稳定和快速的文件和打印服务。

运算符

Google Storage 和 Samba 之间的文件传输是使用 GCSToSambaOperator 运算符执行的。

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

复制单个文件

以下运算符复制单个文件。

tests/system/providers/samba/example_gcs_to_samba.py[源代码]

copy_file_from_gcs_to_samba = GCSToSambaOperator(
    task_id="file-copy-gcs-to-samba",
    samba_conn_id=SMB_CONN,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_FILE,
    destination_path=DESTINATION_PATH_1,
)

移动单个文件

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

tests/system/providers/samba/example_gcs_to_samba.py[源代码]

move_file_from_gcs_to_samba = GCSToSambaOperator(
    task_id="file-move-gcs-to-samba",
    samba_conn_id=SMB_CONN,
    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/samba/example_gcs_to_samba.py[源代码]

copy_dir_from_gcs_to_samba = GCSToSambaOperator(
    task_id="dir-copy-gcs-to-samba",
    samba_conn_id=SMB_CONN,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_DIR,
    destination_path=DESTINATION_PATH_2,
)

移动特定文件

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

tests/system/providers/samba/example_gcs_to_samba.py[源代码]

move_dir_from_gcs_to_samba = GCSToSambaOperator(
    task_id="dir-move-gcs-to-samba",
    samba_conn_id=SMB_CONN,
    source_bucket=BUCKET_NAME,
    source_object=GCS_SRC_DIR,
    destination_path=DESTINATION_PATH_3,
    keep_directory_structure=False,
)

此条目有帮助吗?