couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Alfke <j...@couchbase.com>
Subject Any way to upload a revision in pieces?
Date Sun, 09 Sep 2012 19:39:28 GMT
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
Mime
View raw message