如何判断Google Drive文件夹内容是否已更改

3 投票
2 回答
655 浏览
提问于 2025-04-17 13:35

我现在正在开发一个应用程序,目的是同步用户Google Drive中的一个特定文件夹。我需要找出这个特定文件夹里任何文件或文件夹是否有变化。其实同步的过程很简单,但我不想每隔几秒就进行一次完整的同步。

我在考虑以下几种方法:

1) 监控变化信息,查看是否有文件变化
这种方法比较简单,但如果Google Drive里的任何文件发生变化,都会触发一次同步。

2) 定期请求整个Drive里的所有文件,比如用service.files().list().execute(),然后在特定的文件夹树中查找变化。这种方法比较粗暴。如果用户的Drive里有成千上万的文件,这样做会非常慢。

3) 从特定文件夹开始,逐层向下查找文件夹树中的变化。 如果特定树中只有几个目录,这种方法会比较快,但仍然会导致大量的API请求。

有没有更好的方法来判断一个特定文件夹及其内容是否发生了变化?我能对方法1、2或3进行哪些优化呢?

2 个回答

0

这里有几个小技巧可能会对你有帮助。

首先,如果你的应用使用的是drive.file权限,那么它只能看到自己的文件。根据你的具体情况,这可能意味着你只能访问自己的文件夹结构。

其次,文件可以有多个父文件夹。所以当你在folder-top/folder-1/folder-1a/folder-1ai这个路径下创建文件时,你可以把folder-1ai folder-top都设为父文件夹。这样你只需要检查folder-top就可以了。

1

正如你所说的,你需要保持(或者弄清楚)文件的层级结构,这样才能知道在一个文件夹树中某个文件是否发生了变化。

直接从变化的记录中是无法知道一个深层嵌套的文件是否被修改了。抱歉。

撰写回答