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

删除Google服务账号文件后存储空间未正常回收的问题排查

问题排查与解决建议

1. 先修正现有文件总大小的统计逻辑

你当前的代码仅查询了指定文件夹下的非回收站文件,未覆盖服务账号拥有的所有文件(比如根目录、其他独立文件夹、团队盘内的文件),这会导致现有文件总大小计算不完整,无法准确对比存储用量差值。

修改查询条件,获取服务账号所有拥有的非回收站文件:

let params = {
  'q': 'ownedByMe=true AND trashed=false', // 筛选服务账号拥有且未删除的全部文件
  'pageSize': 1000,
  'fields': 'files(id,size,name,ownedByMe,createdTime,trashed,explicitlyTrashed,properties)',
  'supportsAllDrives': 'true',
  'includeItemsFromAllDrives': 'true'
};
// 后续请求逻辑保持不变

重新计算总大小,看是否与API返回的usage差值缩小。

2. 彻底检查服务账号的回收站文件

即使你之前查询过已删除文件,可能存在查询条件遗漏。用服务账号身份查询所有已标记为删除的文件:

let params = {
  'q': 'trashed=true', // 筛选所有放入回收站的文件
  'pageSize': 1000,
  'fields': 'files(id,size,name,ownedByMe,trashed,explicitlyTrashed)',
  'supportsAllDrives': 'true',
  'includeItemsFromAllDrives': 'true'
};

如果查到文件,手动调用files.delete接口永久删除;注意区分explicitlyTrashed=false的文件——这类文件可能是被间接删除(比如所在文件夹被删),需要单独清理。

3. 检查应用数据文件夹(App Data Folder)

Google Drive的应用数据文件夹用于存储应用专属数据,默认不会在普通文件查询中返回,但会占用服务账号的存储空间。查询该文件夹下的内容:

let params = {
  'spaces': 'appDataFolder', // 指定查询应用数据文件夹
  'pageSize': 1000,
  'fields': 'files(id,size,name)',
  'supportsAllDrives': 'true'
};

若存在文件,删除后重新查看存储用量。

4. 排查文件版本历史占用

极少数情况下,主文件被删除后,旧版本历史可能未被彻底清理。对于仍存在的文件,检查版本历史:

// 替换为具体文件ID
const fileId = 'TARGET_FILE_ID';
const request = {
  'url': `https://www.googleapis.com/drive/v3/files/${fileId}/revisions`,
  'method': 'GET',
  'headers': {
    'Authorization': 'Bearer ' + api.google.access_token
  }
};

如果有大量旧版本,调用revisions.delete接口清理,或直接删除文件后重新上传。

5. 强制触发存储统计刷新

除了上传删除小文件,还可以尝试:

  • 用服务账号上传一个较大的临时文件(比如1GB),上传完成后立即永久删除,这可能强制Google重新计算存储配额。
  • 等待24小时后再次调用about.get接口,个别情况下存储统计的刷新存在延迟。

6. 确认团队盘文件的清理状态

如果服务账号是团队盘管理员,团队盘内的文件占用团队盘配额而非个人配额,但如果服务账号将个人文件移入团队盘后删除,需确认文件是否已从团队盘回收站彻底清除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:00:13