Google Cloud Storage 到 Google Drive 传输算子

Google 有两个用于存储数据的服务。Google Cloud Storage 用于存储来自各种应用程序的大型数据。Google Drive 用于存储日常使用的数据,包括文档和照片。Google Cloud Storage 与 Google Cloud 服务紧密集成。Google Drive 具有内置机制,可促进团队协作,例如文档编辑器、文件共享机制。

先决任务

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

算子

使用 GCSToGoogleDriveOperator 运算符在 Google 存储和 Google 云端硬盘之间传输文件。

你可以将 Jinja 模板source_bucket, source_object, destination_object, impersonation_chain 参数一起使用,这些参数允许你动态确定值。

复制单个文件

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

tests/system/providers/google/cloud/gcs/example_gcs_to_gdrive.py[源代码]

copy_single_file = GCSToGoogleDriveOperator(
    task_id="copy_single_file",
    gcp_conn_id=CONNECTION_ID,
    source_bucket=BUCKET_NAME,
    source_object=f"{TMP_PATH}/{FILE_NAME}",
    destination_object=f"{WORK_DIR}/copied_{FILE_NAME}",
)

复制到现有文件夹

以下运算符将单个文件复制到具有指定 ID 的现有文件夹中。

tests/system/providers/google/cloud/gcs/example_gcs_to_gdrive.py[源代码]

copy_single_file_into_folder = GCSToGoogleDriveOperator(
    task_id="copy_single_file_into_folder",
    gcp_conn_id=CONNECTION_ID,
    source_bucket=BUCKET_NAME,
    source_object=f"{TMP_PATH}/{FILE_NAME}",
    destination_object=f"{WORK_DIR}/copied_{FILE_NAME}",
    destination_folder_id=FOLDER_ID,
)

复制多个文件

以下运算符将复制所有多个文件(即使用通配符)。

tests/system/providers/google/cloud/gcs/example_gcs_to_gdrive.py[源代码]

copy_files = GCSToGoogleDriveOperator(
    task_id="copy_files",
    gcp_conn_id=CONNECTION_ID,
    source_bucket=BUCKET_NAME,
    source_object=f"{TMP_PATH}/*",
    destination_object=f"{WORK_DIR}/",
)

移动文件

使用 move_object 参数允许你移动文件。将文件复制到 Google 云端硬盘后,将删除存储桶中的原始文件。

tests/system/providers/google/cloud/gcs/example_gcs_to_gdrive.py[源代码]

move_files = GCSToGoogleDriveOperator(
    task_id="move_files",
    gcp_conn_id=CONNECTION_ID,
    source_bucket=BUCKET_NAME,
    source_object=f"{TMP_PATH}/*.txt",
    destination_object=f"{WORK_DIR}/",
    move_object=True,
)

参考

有关更多信息,请查看

此条目有帮助吗?