2015-10-21 62 views
4

我有一個測試端點正在運行,當我將一個文件放入觀看的文件夾時,我收到一個帶有標頭X-Goog-Resource-State: update的請求,但我沒有似乎獲得了添加文件的Id。谷歌Drive API「觀看」一個文件夾,如何知道添加的文件

  • 我得到X-Goog-Resource-Id,我還以爲可能是新的文件,但我得到一個404,如果我嘗試get()
  • 我得到X-Goog-Resource-Uri,但屬於監視文件夾
  • 我得到一個X-Goog-Channel-Id,但明顯屬於通道不是文件
  • X-Request-Id,但是這只是一個不透明的UUID

我是否需要在每次更新時獲取已觀看文件夾的完整文件列表,並與已保存的列表進行比較?那感覺不對,但我不知所措。

任何指導將不勝感激。

+0

根據文檔,「更新」意味着文件夾 - 本身 - 已更新(不是文件夾的附加內容)。否則,你應該得到一個「添加」事件。端點還應該收到一個X-Goog-Changed標題,指示資源的哪一部分已更新。 –

+0

請參閱:https://developers.google.com/drive/web/push#understanding-drive-api-notification-events –

+0

感謝您的鏈接,將其添加到我的文檔列表中。但是我沒有得到'add'事件,只是'update'。有一個'X-Goog-Changed'標題表示'children',但沒有標識孩子 –

回答

1

我處於相同的情況,並最終在watch channeltoken字段中傳遞了監視的文件夾(文件)ID。發生事件時,我獲取該文件夾中包含的文件列表。我不需要與任何其他列表進行比較,因爲所有新文件都不屬於我的默認帳戶,因此它們很容易找到,但在您的情況下,您可以在最後幾秒鐘/分鐘內創建search for files或爲所有人使用private property處理文件並搜索缺少該屬性的所有文件。

1

今天有更好的方法嗎?搜索Drive API文檔後,它看起來並沒有改變。

如果它沒有改變,我會在那裏提出另一個想法。我可能最終會做的是創建2個文件夾,一個用於新項目,另一個用於處理項目。我將觀看New Items文件夾,並在收到通知時,處理文件夾中的所有文件並將它們移動到Processed Items文件夾中。只是個人喜好,但我不希望更改文件的屬性或以任何方式修改它們,我會有點偏執,如果我按時創建它們,我會多次處理一些文件或者某種方式會在這裏或那裏被遺漏。

雖然能夠收到添加文件的通知,包括他們的ID,但是會很棒!

+0

據我所知,沒有任何變化。我們幾乎都放棄了這個功能,直到他們修復/添加它爲止,因爲看* *整個*驅動器的*全部*變化只丟掉其中的98%是非常麻煩的。 –

相關問題