获取 409 尝试通过 Sync Gateway 将附件插入现有文档

Getting 409 trying to insert attachment to existing doc via Sync Gateway

我正在尝试向现有文档添加附件。我正在使用 nano 库发送数据和附件,以便以后通过 CBLite 访问。

我从 db.attachment.insert 创建的那些文件似乎没问题。但是,现在我需要为每个文档添加多个附件,我 运行 进入了 409 问题。具体来说,我得到:

409

Document exists

我已确认正在发送当前修订版。

  try {
    let response = await db.getAsync(docId);
    rev = response._rev;
    console.log ('existing entry, rev:' + rev);
  } catch (error) {
    console.log ('new entry');
    let docRes = await db.insertAsync(word, docId);
    console.log (docRes);
    rev = docRes.rev;
  }


    //...
    var data = {};

    try {
      data = await fs.readFile(filePath);
    } catch (ex) {
      console.log ("error: "+filePath);
      console.log  (ex);
      continue;
    }

    if (data) {
      try {
        console.log ('inserting '+filename+' at rev', rev);
        let res = await db.attachment.insertAsync(docId, filename, data, 'audio/mpeg', {rev: rev});
        console.log('attachment inserted', res);
      } catch (error) {
        console.log (error.statusCode);
        console.log (error.message);
      }
    } else console.log('file data empty');

```

我发现了问题:filename 字符串包含 # 个字符,因此导致了问题,更改 name/removing 有问题的字符似乎已经解决了问题。