获取 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 有问题的字符似乎已经解决了问题。
我正在尝试向现有文档添加附件。我正在使用 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 有问题的字符似乎已经解决了问题。