如何查找Google云端硬盘文件夹中的内容是否已更改

时间:2013-01-24 22:06:33

标签: python google-drive-api

我目前正在开发一款同步用户Google云端硬盘中某个特定文件夹的应用。我需要找到该特定文件夹中的任何文件/文件夹何时更改。实际的同步过程很简单,但我不想每隔几秒钟进行一次完全同步。 我正在接受其中一种方法:

1)监视更改提要并查找任何文件更改
这种方法很简单,但如果驱动器中的任何文件发生变化,它将导致同步。

2)经常请求整个驱动器中的所有文件,例如。 service.files()。list()。execute()并查找特定树中的更改。这是一种蛮力的方法。如果用户的驱动器中有1000个文件,则速度太慢。

3)从特定文件夹开始,然后向下移动文件夹树以查找更改。 如果特定树中只有少数目录,则此方法会很快,但仍会导致大量API请求。

有没有更好的方法来查找特定文件夹及其内容是否已更改? 我是否可以对方法1,2或3进行任何优化。

2 个答案:

答案 0 :(得分:1)

正如您所说的那样,您需要保留(或计算出)已更改文件的文件层次结构,以了解文件是否已在文件夹树中更改。

无法直接从更改Feed中了解文件夹中的深层嵌套文件是否已更改。遗憾。

答案 1 :(得分:0)

有一些技巧可能会有所帮助。

首先,如果您的应用程序使用的是drive.file范围,那么它只会看到自己的文件。根据您的具体情况,这可能等同于您的文件夹层次结构。

其次,文件可以有多个父项。所以在folder-top / folder-1 / folder-1a / folder-1ai中创建文件时。您可以将folder-1ai 文件夹顶部声明为父级。然后你只需要检查文件夹顶部。