AirFlow GCSToGoogleDriveOperator的destination_object配置问题求助
解决GCSToGoogleDriveOperator的destination_object路径配置问题
核心参数说明
GCSToGoogleDriveOperator的destination_object参数不能填直观的路径字符串(比如/MyFolder/TargetFile.csv),必须传入Google Drive中目标文件夹或文件的ID。
正确配置步骤
- 获取目标ID:
- 打开Google Drive,进入目标文件夹或找到目标文件,查看浏览器地址栏URL,比如文件夹URL为
https://drive.google.com/drive/folders/1AbCDefGhIjKlMnOpQrStUvWxYz,其中1AbCDefGhIjKlMnOpQrStUvWxYz就是文件夹ID;文件同理,URL中的对应字符串即为文件ID。 - 若要将GCS文件复制到指定文件夹下,
destination_object填该文件夹ID即可,算子会自动保留原GCS文件名;若需重命名文件,需先在Drive中创建对应空文件(或指定已存在文件覆盖),填入该文件的ID。
- 打开Google Drive,进入目标文件夹或找到目标文件,查看浏览器地址栏URL,比如文件夹URL为
错误代码修正示例
错误写法(使用路径字符串)
GCSToGoogleDriveOperator( task_id="copy_gcs_to_drive", source_bucket="my-gcs-bucket", source_object="data/source_file.csv", destination_object="/MyDrive/MyFolder/target_file.csv", gcp_conn_id="google_cloud_default", drive_conn_id="google_drive_default" )
正确写法(传入目标ID)
GCSToGoogleDriveOperator( task_id="copy_gcs_to_drive", source_bucket="my-gcs-bucket", source_object="data/source_file.csv", destination_object="1AbCDefGhIjKlMnOpQrStUvWxYz", # 替换为目标文件夹/文件ID gcp_conn_id="google_cloud_default", drive_conn_id="google_drive_default" )
额外注意事项
- 确保AirFlow配置的Google Drive连接(
drive_conn_id对应的连接)拥有目标Drive路径的读写权限。 - 若目标是共享文件夹,需先将该文件夹添加到操作账号的Drive列表中,才能正常获取ID并执行操作。
内容的提问来源于stack exchange,提问作者Stefan Groenewald
相关产品推荐
相关产品推荐

