如何使用Python将Google Cloud Storage文件导出至Google Drive?
如何将Google Cloud Storage中的Dataflow输出导出到Google Drive
嘿,这个需求挺常见的,我来给你分享几个实用的方法,帮你把GCS里的Dataflow输出转到Google Drive:
方法一:用rclone在Google Shell直接复制(最适合当前场景)
因为你正在用Google Shell,直接用rclone这个工具就能搞定,步骤很简单:
- 安装rclone:在Shell里执行这条命令
curl https://rclone.org/install.sh | sudo bash - 配置rclone连接Google Drive:运行配置向导
跟着向导走就行:选择新建存储(选rclone confign),存储类型选Google Drive(对应编号),然后按照提示完成授权——因为是Google Shell,会给出一个授权链接,复制到浏览器打开,用你的Google账号授权即可。 - 开始复制文件:把GCS路径的内容复制到Drive的指定文件夹,命令格式如下:
比如你要把rclone copy gs://你的GCS存储桶名称/输出文件路径/ drive:Drive里的目标文件夹名称gs://my-dataflow-output/results/下的所有文件复制到Drive的Dataflow结果文件夹,就写:
注意:如果要复制大文件或者大量文件,建议加rclone copy gs://my-dataflow-output/results/ drive:Dataflow结果nohup让任务在后台运行,避免Shell会话断开导致中断:nohup rclone copy gs://your-bucket/path drive:target-folder &
方法二:用Google Cloud Transfer Service(GUI方式,稳定省心)
如果你不想敲命令,用Cloud Console的可视化工具更方便:
- 打开Google Cloud Console,找到Cloud Storage > 传输(Transfer)页面
- 点击“创建传输作业”,源选择“Cloud Storage 存储桶”,然后指定你的输出路径
- 目标选择“Google Drive”,然后授权你的Drive账号,指定要保存的文件夹
- 配置好传输选项(比如是否覆盖现有文件、传输时间等),然后启动作业就行。这个方法适合大文件或者定时同步的场景,Google会帮你后台处理,稳定性更高。
备选方案:后续作业直接输出到Drive(如果以后有需求)
如果你之后想让Dataflow作业直接把结果写到Drive,目前Apache Beam没有官方的Drive连接器,但可以在作业的最后一步调用Google Drive API,或者用rclone作为辅助工具在作业完成后自动触发复制。不过这个需要额外写代码,不如前面两种方法直接。
注意事项
- 确保你的Google账号同时拥有GCS存储桶的读取权限和目标Drive文件夹的写入权限
- 如果是敏感数据,注意传输过程中的权限控制,避免数据泄露
内容的提问来源于stack exchange,提问作者Todd Matsumoto
相关产品推荐
相关产品推荐

