Google 驱动器 API - 在恢复原始文件夹之前恢复从回收站恢复的文件的原始文件夹

Google Drive API - Recovering the original folder for a file restored from trash before the original folder has been restored

场景

  1. Google(团队)驱动器中有很多文件,所有文件都嵌套在文件夹中
  2. 所有这些文件夹及其文件都被误删除了。
  3. 为了恢复数据,使用了 Web UI 上的 Restore 按钮
  4. Web UI 中的 Restore 按钮似乎不关心顺序,它会先还原文件再还原包含它们的文件夹。
  5. 从回收站还原时,自文件夹 "don't exist" 以来,数以千计的文件最终位于驱动器的根目录中。

我需要的:

如何恢复有关文件所在位置的信息,以便正确修补此问题?

我试过的:

  1. 使用 Revisions: list 获取相关文件之一的所有修订,发现只有 1 个结果。
  2. 使用 Revisions: get
  3. 获取该修订的修订信息
  4. 意识到修订信息不包含任何有关 parents 的信息。
  5. 获取文件信息Files: get
  6. 确认主要版本元数据与第 1 步中找到的唯一版本匹配
  7. 看到文件 meta 显示 parent 是根。

我找不到一种方法来确定已删除且未正确还原的文件的原始文件夹。

经过进一步调查,我认为无法从 Google 驱动器 API v3.

中恢复有关先前 parents 的信息

但是,如果您使用的是 Google Team Drive,作为 G Suite 的一部分,您应该可以访问 G Suite Admin SDK Reports API unless you are on a G Suite Basic account. With that you can use Activities: list 并使用各种过滤器来提取有关的信息孤立文件的来源。

我已经在这里发布了我的解决方案:Google Team Drive Orphaned File Restorer

此控制台应用程序可以提取两个时间点之间的 Google 驱动器文件移动列表,可选择按进行更改的用户的 IP 地址进行过滤(即从垃圾中恢复文件)。然后它将使用该信息 re-parent 有问题的文件。您可以干 运行 在实际提交之前查看更改内容。