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

如何通过Google Drive API获取新创建文件的webViewLink

解决方案

你遇到的核心问题是查询文件时未启用共享驱动器访问支持——因为你的文件上传到了共享驱动器(Team Drive),默认的files.get接口不会检索共享驱动器内的资源,必须显式添加supportsAllDrives=true参数才能访问。

方法一:修正查询请求

修改你的GET请求,添加supportsAllDrives=true参数,就能通过上传返回的ID获取webViewLink:

curl -X GET -D- -H "Authorization: Bearer ${ACCESS_TOKEN}" "https://www.googleapis.com/drive/v3/files/1NR4LqfYiGt_bzy8olPZicRZ-CoWYuqTN?fields=webViewLink&supportsAllDrives=true"

方法二:上传时直接返回webViewLink(更高效)

不需要二次查询,在上传请求中通过fields参数指定返回webViewLink,上传成功后直接拿到结果:
修改上传命令:

curl -X POST -D- -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Accept: application/json" -F "metadata=@meta.json;type=application/json;charset=UTF-8" -F "file=@hi.txt" "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=true&fields=id,name,webViewLink"

返回的响应会直接包含webViewLink字段,示例:

{
  "kind": "drive#file",
  "id": "1NR4LqfYiGt_bzy8olPZicRZ-CoWYuqTN",
  "name": "hi.txt",
  "webViewLink": "https://drive.google.com/file/d/1NR4LqfYiGt_bzy8olPZicRZ-CoWYuqTN/view?usp=drivesdk"
}

另外你提到列表中看到的文件ID和上传返回的不同,大概率是因为你调用files.list时也没加supportsAllDrives=true参数,导致返回的是其他位置的文件。添加该参数后,就能看到上传返回的正确ID对应的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:33:29