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

服务账号如何恢复并删除Google Drive共享文件夹中被删文件

问题原因

服务账号创建的文件所有权默认归属服务账号本身,当共享文件夹内的普通用户删除这类文件时,仅会移除文件在当前共享文件夹下的关联关系,不会将文件移入任何账号的回收站——普通用户没有权限删除其他账号(含服务账号)所有的文件。
这类被移除所有父目录关联的文件会成为服务账号名下的孤立文件,不会出现在服务账号默认的文件列表、回收站列表中,但仍会持续占用服务账号的存储配额,这就是你看到usageInDriveTrash为0但存储空间未释放的核心原因。

操作步骤

1. 定位占空间的孤立文件

你不需要记得原文件ID,直接通过服务账号遍历名下所有非回收站文件,筛选无父目录的大体积文件即可定位目标。参考代码如下:

from googleapiclient import discovery
from oauth2client.service_account import ServiceAccountCredentials

scope = ["https://www.googleapis.com/auth/drive"]
credentials = ServiceAccountCredentials.from_json_keyfile_name(
            filename="my-key.json", scopes=scope
)
service = discovery.build("drive", "v3", credentials=credentials)

# 拉取服务账号所有未进回收站的文件,返回必要字段
results = service.files().list(
    q="'me' in owners and trashed = false",
    fields="files(id,name,size,parents,createdTime,mimeType)",
    includeItemsFromAllDrives=True,
    supportsAllDrives=True,
    pageSize=1000
).execute()

all_files = results.get('files', [])
# 筛选孤立文件(无父目录关联)
orphan_files = [f for f in all_files if 'parents' not in f or len(f['parents'])==0]

for f in orphan_files:
    # 你之前上传的是zip文件、体积约9G左右,很容易匹配
    print(f"找到孤立文件:名称{f['name']},ID:{f['id']},大小:{int(f['size'])/1024/1024/1024:.2f}G,创建时间:{f['createdTime']}")

执行后你会拿到所有孤立文件的信息,匹配你之前上传的test.zip的创建时间、大小,就能拿到对应的file_id。

2. 清理文件释放空间

拿到目标文件ID后,直接调用永久删除接口即可,不需要先恢复文件:

target_file_id = "替换为你上一步找到的文件ID"
service.files().delete(
    fileId=target_file_id,
    supportsAllDrives=True
).execute()

接口返回成功后等待1~3分钟,再查询存储配额就能看到占用空间已经释放。

如果你需要先确认文件内容再删除,可以先把文件移回你有权限访问的目录,确认无误后再执行删除:

# 把孤立文件移回指定共享文件夹,folder_id替换为你可访问的文件夹ID
service.files().update(
    fileId=target_file_id,
    addParents="folder_id",
    supportsAllDrives=True
).execute()
额外注意

你之前的上传代码中file_metadata同时写了title和name字段,Drive API v3版本仅识别name字段,title是v2版本的遗留参数,后续开发可以移除该冗余字段避免异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:36:23