Google Cloud Storage 到 Google Drive 传输操作符¶
Google 有两个服务用于存储数据。Google Cloud Storage 用于存储来自各种应用程序的大量数据。Google Drive 用于存储日常使用的数据,包括文档和照片。Google Cloud Storage 与 Google Cloud 服务具有强大的集成。Google Drive 具有内置机制来促进团队工作,例如文档编辑器、文件共享机制。
先决条件任务¶
要使用这些操作符,您必须执行以下几项操作
使用 Cloud Console 选择或创建 Cloud Platform 项目。
按照 Google Cloud 文档中的说明,为您的项目启用结算。
按照 Cloud Console 文档中的说明启用 API。
通过 pip 安装 API 库。
pip install 'apache-airflow[google]'安装提供了详细信息。
操作符¶
使用 GCSToGoogleDriveOperator
操作符在 Google Storage 和 Google Drive 之间传输文件。
您可以将 Jinja 模板 与 source_bucket
, source_object
, destination_object
, impersonation_chain
参数一起使用,这允许您动态确定值。
复制单个文件¶
以下操作符将复制单个文件。
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 的现有文件夹中。
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,
)
复制多个文件¶
以下操作符将复制所有多个文件(即使用通配符)。
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 Drive 后,将删除存储桶中的原始文件。
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,
)