3

我目前正在开发一个应用程序,该应用程序可以同步用户 Google Drive 中的一个特定文件夹。我需要查找该特定文件夹中的任何文件/文件夹何时发生更改。实际的同步过程很简单,但我不想每隔几秒就进行一次完全同步。我正在考虑以下方法之一:

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

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

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

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

4

2 回答 2

1

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

无法直接从更改提要中知道文件夹中的深层嵌套文件是否已更改。对不起。

于 2013-01-28T06:18:55.260 回答
0

有几个技巧可能会有所帮助。

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

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

于 2013-12-19T15:09:47.060 回答