2017-10-20 203 views
1

我通過聆聽改變流是處理後的CouchDB文檔。該方案如下:檢查附件是否是最新的與當前文檔的修訂在我的應用程序的CouchDB

  1. 我的應用程序被通知的文件得到了通過改變/ DB/_changes
  2. 它取了文件,並檢查該文件有一個合適的附件,如果附件的revpos是等於文件修改的第一部分。如果例如轉速看起來像這樣13-D2JDBS3然後我在-字符分割字符串,採取的第一個比賽,將其轉換爲一個數字,把它比作附件的revpos
  3. 如果上述檢查失敗,我生成PDF並將其附加到文檔。

這工作不錯迄今。但我想知道這是由couchdb的設計是故意的。依靠這種行爲是否安全?(revpos反映它所屬修訂的第一部分)?在文檔中我找不到任何關於此的內容。

預先感謝關於這一主題的任何暗示。

回答

1

我覺得這個故意的,似乎是公衆和記錄的API,雖然措辭很可能使用一些澄清。

Revisions documentation他們說:

的版本號是文檔的與N-前綴表示的次文件得到更新次數的運輸代表的MD5哈希值。

而在Attachments documentation他們說:

revpos(數字):修訂時添加附件[強調他們的]

這有點不幸的是,他們所謂的整個_rev標識前一個文檔中的「修訂版號」,因爲後者的意圖似乎很清楚,只有「N」前綴爲「號碼」。

你可能會考慮向這個文檔錯誤,要求他們澄清revpos永遠是「N-前綴」如果這確實是一件他們願意擔保的「N」的一部分。

+0

非常感謝您的文檔提示! – domachine

相關問題