使用AJAX调用Drive API更新文件文件夹失败问题排查
问题原因及解决方法
核心问题:Google Drive API v3 中,使用 PATCH 更新文件父文件夹时,不能直接在请求体中设置
parents数组——该字段在 PATCH 请求的请求体中是只读属性,无法通过这种方式修改。正确实现方式:
- 替换所有父文件夹(将文件移动到新文件夹,移除原有父文件夹):在请求 URL 中添加
setParents查询参数,值为目标文件夹 ID。 - 添加新父文件夹(保留原有父文件夹):在请求 URL 中添加
addParents查询参数。 - 移除指定父文件夹:在请求 URL 中添加
removeParents查询参数。
- 替换所有父文件夹(将文件移动到新文件夹,移除原有父文件夹):在请求 URL 中添加
修改后的代码示例:
url: "https://www.googleapis.com/drive/v3/files/D5Rs1c...?setParents=1isO7RhgpuvNo-dkC0UJLrziGC...", data: JSON.stringify({ name: "name the drive" }), contentType: "application/json", type: "PATCH"
- 补充说明:
- 若需同时添加和移除父文件夹,可在 URL 中组合使用参数,多个 ID 用逗号分隔(如
?addParents=ID1,ID2&removeParents=ID3)。 - 请求体仅需保留
name字段即可,父文件夹的修改完全通过 URL 查询参数完成。
- 若需同时添加和移除父文件夹,可在 URL 中组合使用参数,多个 ID 用逗号分隔(如
内容的提问来源于stack exchange,提问作者code2018
相关产品推荐
相关产品推荐

