使用Google Drive API无法创建文件快捷方式的问题求助
问题原因及解决方案
问题出在你使用了文件上传端点(/upload/drive/v3/files),但创建快捷方式属于元数据操作,不需要上传二进制文件内容。当你在这个端点使用json参数时,requests会把JSON数据当成文件的正文内容发送,导致Google Drive创建了一个包含该JSON的文本文件,而非解析成快捷方式的元数据。
修正步骤
- 替换API端点为标准的文件创建端点,去掉
/upload路径 - 其余参数保持不变,你定义的快捷方式元数据格式是正确的
修正后的代码
import requests # 替换为不带/upload的标准文件创建端点 api_endpoint = 'https://www.googleapis.com/drive/v3/files?supportsAllDrives=true' headers = { 'Authorization': f'Bearer {access_token}' } # 快捷方式的元数据定义,parents字段可简化为直接传ID字符串 json_payload = { "name": "a.jpg", "mimeType": "application/vnd.google-apps.shortcut", "parents": ["folder_id"], "shortcutDetails": {"targetId": "target_file_id"} } res = requests.post(api_endpoint, headers=headers, json=json_payload) print(res.status_code) print(res.text)
额外说明
- 只有需要上传二进制文件内容(比如图片、文档)时,才需要使用带
/upload的端点,且需配合files参数传递文件内容。 - 创建快捷方式、文件夹这类仅涉及元数据的操作,直接使用标准的
drive/v3/files端点即可。
内容的提问来源于stack exchange,提问作者jak bin
相关产品推荐
相关产品推荐

