Is there any way to upload a single revision of a document (including 
attachments) to CouchDB using multiple HTTP requests?

I ask because a developer using TouchDB has been having trouble replicating 
from his iOS app to Cloudant. With some help from tech support, he found that 
the app has some documents larger than 64MB (they include large numbers of JPEG 
attachments), but Cloudant limits HTTP request bodies to 64MB.

Apparently the Cloudant folks (whom I haven’t talked with directly yet) are 
saying TouchDB should be uploading “standalone attachments”; but I don’t know 
of any way in the API to upload the attachments of a single revision 
individually. You can of course PUT to an attachment URL, but that creates a 
_new_ revision for every attachment, so this is not useable by the replicator 
since its job is not to create new revisions but only to transfer existing ones.

I’ve closed the bug report[1], suggesting that the developer should change the 
document design to store fewer attachments in one doc, but I’m asking here in 
case there’s some corner of the API that might allow for a workaround. 
(Although I can’t imagine what sort of state a revision would be in when only a 
subset of its attachments have been uploaded yet — it would have to be kept in 
some kind of limbo by the server until all the attachments are added, since 
until then it’s not a true copy of the revision.)

—Jens

[1] https://github.com/couchbaselabs/TouchDB-iOS/issues/159

Reply via email to