2012-10-29 37 views
6

我正在測試Google雲端硬盤的「更改」API並提出了一些問題。Google雲端硬盤 - 更改:列表API - 檢測文件夾級別的更改

期望值: 我在'我的驅動器'下有文件夾的文件夾樹結構。我想調用Changes:list API來檢測項目是否已在該特定文件夾ID中添加/編輯/刪除。

API瀏覽器嘗試:https://developers.google.com/drive/v2/reference/changes/list

問題:

  1. 我沒有看到任何選項,一個特定的文件夾ID傳遞給這個API獲取 'largestChangeId'。看起來這個api不支持parm'q'?可能嗎?

  2. 作爲一種替代解決方案,爲存儲該文件夾的'modifiedDate'屬性並將其用於下一次比較的想法。但是,當該文件夾中的項目更新時,它不會更新。它應該不是像在窗口中一樣,文件夾修改日期在其內容得到更新時得到更新?

想要了解是否可以檢測文件夾級別的更改。

感謝

[編輯]

解決方案奏效:

  1. 使用的文件:列表中列出所有。 選擇字段:項目/ ID,項目/ modifiedDate,項目/父母/ ID,項目/標題

  2. 獲取啓動文件夾ID(如 'MyRootFolder' 用標題搜索)

  3. 遍歷子樹結構(鏈接父母:id和文件Id)使用遞歸數組搜索並獲取max modifiedDate和總文件數。
  4. 在應用程序存儲中存儲最大修改日期和文件計數。
  5. 對於後續調用,請將新的最大修改日期與存儲的比較以及比較總的文件數與存儲的數。如果其中一個不匹配,則'MyRootFolder'中的內容已更新。

回答

2

目前不能直接使用API​​ - 對不起!

我認爲當前最好的解決方案是使用正常父母設置的代碼中的常規更改提要和篩選結果。

+0

的解決方案,您給人以刪除的對象不會工作:我們已經超越了ID爲永久刪除的對象沒有信息的變化飼料 – Jerome

+0

玩「的變化:列表」 API全力應對可能不適合我的要求工作。原因是,我必須啓用'includeDeleted'標誌,因爲我還需要檢測文件夾內的文件刪除。但它沒有用,因爲響應中的那些被刪除的項目沒有父母ID。所以,在刪除之前我無法確定它們存在於哪個文件夾中 - 我對刪除文件夾級別範圍之外的文件不感興趣。 我已經用解決方案更新了我的帖子。 –

+0

是的,你是對的,但這是一個用戶功能。爲什麼你的應用程序知道關於刪除數據的任何內容用戶已刪除它。該ID用於清理您的系統。作爲一名開發人員,這對我來說並不完美,但我認爲這裏的用戶意圖是正確的。 –

1

drive.changes.list谷歌驅動器API現在允許用戶通過「startChangeId」參數。

使用我從前面的API結果中獲得的「largestChangeId」的值,所以我可以增量地構建用戶完成的更改,從而避免重建整個樹。

我很驚訝地發現他們爲什麼不支持「includeDeleted」參數和「startChangeId」參數。

相關問題