gpt4 book ai didi

python - 有没有办法通过一个请求仅列出 Google Drive API 上根文件夹或根文件夹下任何级别的文件?

转载 作者:行者123 更新时间:2023-12-01 06:45:10 25 4
gpt4 key购买 nike

我想做的是从 Google 云端硬盘文件创建本地文件树(就像缓存一样),这样我就不必每次需要文件信息时都发出 HTTP 请求(配额有限)谷歌 API)。

我的最佳方法是一次请求所有文件,因此我有一个巨大的 File 列表,没有太多 HTTP 请求,我可以直接链接它们来创建树。它可以通过对文件做一些技巧来实现,但问题是我得到的文件比我需要的多得多(收到了 9729 个,只有 1764 个有用),因为我无法想到一个有效的 filterlist 服务。我正在下载所有文件(包括sharedWithMe,垃圾除外,因为有一个简单的过滤器trashed = false,也只下载必要的字段),并且花费的时间比必要的要长得多,因为不必要的数据。

我只是想获取 MyDrive(根)文件夹下的文件(有一些 files that are sharedWithMe and are also under MyDrive ,我不能简单地通过使用 q = 'me' in Owner 来忽略它们)。换句话说,我只想获取根级别的文件、根级别文件的子文件等。有什么查询可以实现吗?或者至少让它更有效率?

注意:这不是 shared drive application

最佳答案

我发现创建树的最佳方法是:

  1. 请求所有文件夹的 files.list (q: mimeType = 'application/vnd.google-apps.folder'),因为文件夹通常少于文件。 trashed = false 也很有用。
  2. 创建树结构,丢弃所有无用的文件夹。
  3. 对于树中的每个文件夹,获取其 ID,然后使用 q = 'mimeType != 'application/vnd.google-apps.folder' 和 (folderId1' 在父项中或 'folderId2 在父项中或 ... 或父级中的“folderIdN”)(注意主体大小过大的过于复杂的查询错误[可能超过 25,000 个字符,不确定])。
  4. 完成树的链接。

这样做会产生一些无用数据和少量请求,但下载的数据量比没有任何 q 限制的列出文件要少得多。

这个想法来自于 this question 答案的替代方案 3 .

关于python - 有没有办法通过一个请求仅列出 Google Drive API 上根文件夹或根文件夹下任何级别的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59257867/

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