You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Colab将Google Drive大文件拷贝至Google Cloud Storage

可行落地方法

最优方案:Google Drive到GCS直接流式传输(完全不占用Colab本地磁盘)

这个方案可直接落地,核心逻辑是分块读取Google Drive文件流,直接同步分块上传到GCS,全程只在内存中缓存单块数据,无需存储完整文件到Colab磁盘,完美适配80GB以上大文件传输需求。

具体实现步骤(Colab环境可直接运行)

  1. 安装依赖库
!pip install google-cloud-storage google-api-python-client
  1. 账号授权
from google.colab import auth
auth.authenticate_user()
  1. 导入依赖并配置参数
from googleapiclient.discovery import build
from google.cloud import storage
import io

# 自定义配置项
GDRIVE_FILE_ID = "待传输文件的Google Drive ID" # 从文件分享链接中提取
GCP_PROJECT_ID = "你的GCP项目ID"
GCS_BUCKET_NAME = "目标存储桶名称"
GCS_FILE_PATH = "文件在GCS中的保存路径/文件名"
CHUNK_SIZE = 150 * 1024 * 1024 # 150MB分块,可根据需求调整
  1. 初始化服务客户端
# 初始化Google Drive客户端
drive_client = build("drive", "v3")
# 初始化GCS客户端
gcs_client = storage.Client(project=GCP_PROJECT_ID)
target_bucket = gcs_client.bucket(GCS_BUCKET_NAME)
target_blob = target_bucket.blob(GCS_FILE_PATH, chunk_size=CHUNK_SIZE)
  1. 执行流式传输
# 获取Drive文件读取流
file_request = drive_client.files().get_media(fileId=GDRIVE_FILE_ID)

# 分块读取+同步上传,全程不写入本地磁盘
target_blob.upload_from_file(file_request, chunksize=CHUNK_SIZE)

print("文件传输完成")

注意事项

  • 若待传输文件是Google Docs/Sheets等Workspace专属格式,需先调用Drive API的export接口导出为通用格式再传输
  • 需确保当前授权账号同时拥有Google Drive文件的读取权限、GCS存储桶的写入权限
  • 若Colab运行中断,可搭配GCS的断点续传接口实现续传,无需重新传输完整文件

替代方案:分块本地缓存传输

如果需要自行控制分块落盘逻辑,可按以下逻辑实现:每下载150MB分块写入Colab本地临时文件,上传完成后立即删除该分块文件,全程磁盘占用稳定在150MB左右,不会触发容量上限。

内容的提问来源于stack exchange,提问作者Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:48:04