2011-11-29 18 views
2

我有一個CouchDB服務器運行在只允許GETHEADOPTIONS請求的前端代理之後。 POSTPUTDELETE都是不允許的。使用CouchDB從只讀服務器拉複製

當我在本地計算機上設置複製以從遠程服務器提取時,它工作正常,直到它結束,當它嘗試POST/_ensure_full_commit時。這會返回一個401 Unauthorized響應並導致複製崩潰,並在開始時重新啓動。

我可以防止CouchDB備份與調用/_ensure_full_commit或者我需要改變前端代理服務器配置爲允許POST s到這個網址?

回答

1

它看起來像複製代碼只是一直嘗試提交兩個服務器作爲複製關卡流程的一部分:https://github.com/apache/couchdb/blob/master/src/couch_replicator/src/couch_replicator.erl#L695

所以現在最快的解決辦法是在代理級別假「成功」響應或者直接傳遞該請求,尤其是因爲我們都不知道它是否「必要」。

但我還強烈建議您ask on the mailinglist and/or file a bug這個雖然 - 這似乎很奇怪,你不能只使用GET請求做一個拉複製。

更新:只記得有最近降落在開發分支複製代碼相當顯著重寫,所以另一個考慮是嘗試了new replicator in 1.2第一!

+0

謝謝,我確實閱讀郵件列表,但我一定錯過了重寫。我目前運行https://launchpad.net/~kmpm/+archive/ppa/+build/2601645這是一箇舊的1.2快照。我會更新它,然後提交一個錯誤,如果它仍然不起作用。 –