CouchDB Filtered Replication

Испытывая фильтры для репликации, я наткнулся на проблему. Пока мой фильтр работает как запись в базе данных _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 _COPY7@192.168.178.13:5985/_репликация -d '{\ "source\":\ "_COPY1\",\ "target\": \ "docs2_partial\",\ "filter\":\ "частичная/mobile\",\ "create_target\":true}' -H "Content-Type: application/json"

Я создал _design/partial документ как на целевой, так и на исходной стороне, но все документы реплицируются. Даже тот, к которому прилагается двоичный файл размером более 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: [...]}

5
задан degeeman 17 August 2011 в 21:49
поделиться