3

現在、ユーザーの Google ドライブ内の特定の 1 つのフォルダーを同期するアプリに取り組んでいます。その特定のフォルダー内のファイル/フォルダーのいずれかがいつ変更されたかを見つける必要があります。実際の同期プロセスは簡単ですが、数秒ごとに完全な同期を実行したくありません。私はこれらの方法のいずれかを考えています:

1) 変更フィードを監視し、ファイルの変更を探す
この方法は簡単ですが、ドライブ内のファイルが変更されると同期が発生します。

2)ドライブ全体のすべてのファイルを頻繁に要求します。service.files().list().execute() を実行し、特定のツリー内の変更を探します。これは強引なアプローチです。ユーザーがドライブに何千ものファイルを持っている場合、遅すぎます。

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-1aiとfolder-top の両方を親として宣言できます。次に、folder-top を確認するだけです。

于 2013-12-19T15:09:47.060 に答える