ドライブ内のアイテムの変更を追跡する必要がある Google ドライブ アプリの場合、Changes コレクションを使用すると、変更を効率的に検出できます。このコレクションは、特定の時点以降にアイテムが変更された場合にのみ、各アイテムの現在の状態を提供します。
Google ドライブでは、ユーザーごと、共有ドライブごとに変更ログが保持されます。それぞれに、関心のあるアイテムの変更に関する独自のレコードがあります。
ユーザーに表示されるすべてのアイテムの変更を追跡するには、ユーザーの変更ログと、ユーザーがメンバーになっているすべての共有ドライブの変更ログの両方を再生する必要があります。
変更エントリを有効にする
変更エントリは、特定の時点におけるファイルまたは共有ドライブの状態を表します。変更は、リビジョン間の差分を提供するものではありません。どのプロパティが変更されたかを把握する必要があるアプリケーションは、以前に把握したアイテムの状態を保持して比較する必要があります。
変更はアイテムの現在の状態を表すため、個々の変更エントリが無効になり、対応するアイテムの新しい変更エントリに置き換えられることがあります。
Tombstone
ユーザーが利用できなくなったアイテムの変更エントリは、変更エントリで deleted とマークされます。変更エントリで使用できるのは、アイテムの ID のみです。
共有ドライブを追跡する
各共有ドライブには、それぞれ独自の変更ログがあります。ユーザーが共有ドライブのメンバーであっても、特定の変更は共有ドライブの変更ログにのみ反映され、ユーザーの変更ログには反映されません。ファイルが共有ドライブに属している場合、過去のある時点でユーザーの変更ログにファイルが表示されていたとしても、ユーザーの変更ログを再生するだけでは、ファイルのステータスは正しく更新されません。代わりに、共有ドライブの変更ログを再生して、すべての変更をキャプチャする必要があります。
ユーザーの変更ログに含まれる内容
ユーザーの変更ログには、ユーザーがメンバーである共有ドライブへの変更と、ユーザーのコーパス内のファイルへの変更が含まれます。コーパスの詳細については、変更とリビジョンの概要をご覧ください。
共有ドライブの以下の変更がユーザーの変更ログに表示されます。
- ユーザーが共有ドライブのメンバーになった。
- ユーザーが共有ドライブのメンバーではなくなった。
- ユーザーがメンバーである共有ドライブに、直接関連する変更がある場合。例:
- その共有ドライブに対するユーザーのアクセスレベルが変更された。
- 共有ドライブの名前が変更されます。
ユーザーが共有ドライブのメンバーになると、共有ドライブの単一の変更イベントがユーザーの変更ログに表示されます。これは、共有ドライブ内のすべてのアイテムへのアクセスを意味します。ユーザーがメンバーになっても、共有ドライブ内のアイテムの変更は通知されません。
共有ドライブのメンバーは、使用状況に応じて、共有ドライブ内のアイテムの変更イベントを確認できる場合があります。ただし、ユーザーが共有ドライブのメンバーである場合、アプリケーションはこれらのイベントに依存しないでください。代わりに、共有ドライブの変更ログを使用して変更を追跡します。
メンバー以外のユーザーに共有ドライブ内の個々のアイテムへのファイル アクセス権が付与されている場合、それらのアイテムへの変更はユーザーの変更ログで追跡されます。これは、ユーザーと直接共有されている共有ドライブ以外のアイテムと同じです。
共有ドライブの変更ログに表示される変更
ユーザーが共有ドライブのメンバーである場合、その共有ドライブの変更ログにアクセスできます。変更ログには次のものが含まれます。
- 共有ドライブ自体への変更(メンバーの追加や削除など)
- 共有ドライブに含まれるアイテムに直接変更を加える。
権限と機能の同期
共有ドライブまたは共有ドライブ内のアイテムの権限が変更されると、ドライブはフォルダ階層をたどり、変更を継承するすべての直接および間接の子の有効な権限を更新します。変更ログには、変更されたアイテムと影響を受ける各子孫に対して個別のエントリが記録されます。クライアント アプリケーションは changes.list から個々の変更ログエントリを受け取るため、手動で機能を伝播したり、子アイテムを再取得したりする必要はありません。