Пробуя фильтры для репликации, я наткнулся на проблему.
Пока мой фильтр работает как запись в базе данных _replicator, я не использую cURL.
Фильтр в проектной документации:
{
"_id": "_design/partial",
"filters": {
"mobile": "function(doc, req) {
if (doc._attachments) {
var result = new Boolean(true);
for (attachment in doc._attachments) {
if (attachment.content_type == 'image/jpeg') {
return true;
}
if (doc._attachments.length > 1024) {
result = false;
}
}
return result;
} else {
return true;
}
}"
}
}
Линия cURL:
curl -X POST <a href="http://admin:pass@192.168.178.13:5985/" rel="nofollow">http://admin:pass@192.168.178.13:5985/</a>_replicate -d '{\"source\":\"http://admin:pass@192.168.2:5984/docs2\",\"target\":\"docs2_partial\",\"filter\":\"partial/mobile\",\"create_target\":true}' -H "Content-Type: application/json"
Я создал _design / частичный документ как для цели, так и для источника, но все документы реплицируются. Даже тот, с прикрепленным двоичным файлом больше 1 МБ.
Любая помощь приветствуется!
Ответ cURL:
{"ok":true,"session_id":"833ff96d21278a24532d116f57c45f31","source_last_seq":32,"replication_id_version":2,"history":[{"session_id":"833ff96d21278a24532d116f57c45f31","start_time":"Wed, 17 Aug 2011 21:43:46 GMT","end_time":"Wed, 17 Aug 2011 21:44:22 GMT","start_last_seq":0,"end_last_seq":32,"recorded_seq":32,"missing_checked":0,"missing_found":28,"docs_read":28,"docs_written":28,"doc_write_failures":0}]}
Использование «вместо \» или «вместо» приводит к результату:
{"error":"bad_request","reason":"invalid UTF-8 JSON: [...]}