gpt4 book ai didi

google-drive-api - 删除根目录下的大量文件

转载 作者:行者123 更新时间:2023-12-03 21:59:24 24 4
gpt4 key购买 nike

我错误地在我的谷歌驱动器的根目录下保存了大量文件(>10 万个文件)。我不能轻易地在线删除它们。

我目前正在尝试使用 file list api 删除它们和 file delete api , 它有效,但它真的很慢。

我也没有找到一种方法来计算根目录中剩余的文件数量,以估计这将花费多少时间。

有没有人有更快的删除文件的方法,或者统计文件的方法?

最佳答案

Google Drive REST API 提供了一种用于一次发出多个请求的批处理方法,并且比一次发出一个请求的速度更快。您可以查看有关发出批量请求的完整引用 here ,包括支持语言的代码片段。您可以使用以下 python 代码片段向 Drive REST API 发出批量删除请求:

listOfFileIDs = [] 

def callback(request_id, response, exception):
if not exception:
print(response)
else:
print(exception)

batch = vals.service.new_batch_http_request(callback = callback)

for file_id in listOfFileIDs:
batch.add(vals.service.files().delete(fileId = file_id))

print(batch.execute())

您应该通过发出 Files: list 请求来填充 listOfFileIDs 以获取要删除的文件的 ID 列表。

Things to remember :

  • 每批最多只能进行 100 次调用,因此您仍然需要向服务器发出多次批请求
  • listOfFileIDs 由于此批处理限制,最大长度也只能为 100
  • 批量请求比单个请求更快,使用的配额更少

您可以在 Developer's Console 跟踪项目的请求.应用程序配额有一个礼貌的限制,即每位用户每 100 秒 1000 个请求,以及您可以在 the quota tab for you application 上看到的一些其他配额限制。 .您可能还需要使用 Exponential backoff 来限制您的请求率如果你一直收到 403: Rate limit exceeded403: User rate limit exceeded .

关于google-drive-api - 删除根目录下的大量文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56768573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com