如何通过Google Drive V3删除共享文件夹文件并解决权限删除报错?
Google Drive权限删除报错解决方案
- 首先确认OAuth授权范围配置正确,当前使用的服务账号凭证申请的Scope必须包含权限修改权限,仅只读Scope会导致列表操作正常、修改操作失败:需要新增
https://www.googleapis.com/auth/drive或https://www.googleapis.com/auth/drive.permissions授权范围,替换原有的只读Scope后重新生成凭证。 - 检查服务账号在目标共享文件夹的权限等级:必须授予服务账号内容管理者(共享云端硬盘场景)或所有者(个人文件夹场景)权限,普通编辑者、查看者角色仅支持查看文件和权限列表,不支持修改/删除权限。如果是Google Workspace组织下的资源,需要在Workspace管理后台为该服务账号开启全域权限委派,允许其模拟组织内对目标文件夹有管理权限的用户身份执行操作。
- 补充权限过滤逻辑,跳过所有者权限的删除:当前代码会遍历删除文件的所有权限,但即便是管理员角色也无法删除文件所有者的权限,会直接触发权限不足报错。在删除权限前添加判断:
// 遍历权限时新增过滤 if (permission.role === 'owner' || !permission.id || !file.id) { return; }
- 修复代码异步逻辑缺陷:当前内部删除权限的
Promise.all没有添加await关键字,会导致逻辑未执行完成就提前结束,建议修改为:
await Promise.all( permissionIds.data.permissions.map(async (permission) => { // 原有逻辑 }) );
内容的提问来源于stack exchange,提问作者ffx292
相关产品推荐
相关产品推荐

