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

使用Google API时,如何将Google Drive URI转换为Google Cloud Storage URI?

嘿,这个问题我之前帮不少开发者捋清楚过——直接把Google Drive URI转换成GCS URI是行不通的,因为两者是完全独立的存储服务,URI的格式、存储逻辑都不一样。不过你可以通过把Drive里的文件迁移到GCS的方式,获得对应的GCS URI,下面给你几个实用的方案,按需选就行:

方案1:手动迁移(适合少量文件)

如果你的文件不多,手动操作最省心:

  • 先把Google Drive里的文件下载到本地
  • 打开Google Cloud Console,找到你已经创建好的GCS存储桶
  • 把本地文件上传到存储桶,上传完成后,对应的GCS URI格式是 gs://[你的存储桶名称]/[文件路径/文件名]
方案2:用Cloud Transfer Service批量迁移(适合大量文件/文件夹)

要是你有一堆文件或者整个文件夹要迁移,用Google官方的迁移工具效率最高:

  • 登录Google Cloud Console,搜索并打开「Cloud Transfer Service」
  • 创建新迁移任务:源选择「Google Drive」,然后完成授权,让服务能访问你的Drive文件
  • 目标选择你的GCS存储桶,还可以设置过滤规则(比如只迁移特定类型的文件、特定文件夹下的内容)
  • 启动任务,等迁移完成后,所有转到GCS的文件都会有对应的GCS URI
方案3:脚本自动化迁移(适合开发者/自动化场景)

如果需要集成到你的工作流里,用脚本自动处理是最好的选择,这里给你一个Python的示例:
首先安装依赖:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib google-cloud-storage

然后编写脚本(记得提前准备好GCP的OAuth2凭据文件,给它Drive读取权限和GCS写入权限):

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
from google.cloud import storage

# 初始化Drive API客户端
creds = Credentials.from_authorized_user_file('credentials.json')
drive_service = build('drive', 'v3', credentials=creds)

# 从Drive URI里提取文件ID,比如drive.google.com/file/d/xxxxxx/... 里的xxxxxx就是file_id
file_id = "你的Drive文件ID"
# 获取Drive文件的二进制内容
request = drive_service.files().get_media(fileId=file_id)
file_content = request.execute()

# 初始化GCS客户端,上传文件
storage_client = storage.Client(credentials=creds)
bucket = storage_client.get_bucket("你的GCS存储桶名称")
# 设置GCS里的文件名/路径
blob = bucket.blob("迁移后的文件名")

# 上传到GCS
blob.upload_from_string(file_content)

# 输出对应的GCS URI
print(f"对应的GCS URI: gs://{bucket.name}/{blob.name}")

小提醒:如果你的Drive文件是共享文件夹或者团队盘里的,一定要确保你用来迁移的账号有足够的访问权限,不然会出现权限不足的错误哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:01:20