couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Ohimor <>
Subject RE: Base64 attachment via Futon
Date Tue, 21 Aug 2012 16:23:36 GMT

A bit of clarification on my behalf.  I'm doing a POST using the following command:

	curl --data @nonBreak.json http://localhost:5984/source_data --header "Content-Type: application/json"

The issue is embedding base64'd attachment in the JSON.  I would prefer to refrain from using
MIME as other data needs to be sent with the attachment.  I've attempted to POST with two
different types of base64'd attachments.  I've attempted to use the standard conversion made
available by apache commons codec.  This (unfortunately) produces a string with line breaks.
 CouchDB documentation states that there can be no line breaks (I assume due to the syntax
of JSON and the result not being parsed correctly).  I looked into used the base64.encodeBase64URLSafeString
  in commons codec which is supposed to generate a string with no line breaks and url safe
characters.  I'm beginning to think the latter is not supported.  

I'm looking into removing newline characters from the generated base64'd attachment, however
when I scan the string (java: content.replace((\r\n|\n|\r),"")) nothing appears to be removed
from the string.

Does CouchDB support url-safe base64Encoded strings?  If not (and this may be more of a java
related issue) are there any libraries that will remove line breaks in base encoded strings?

Lastly, about your P.S. If you go to and look at the Download Section.
 There label says Windows(R15B).  

-----Original Message-----
From: Jens Alfke [] 
Sent: Tuesday, August 21, 2012 12:03 PM
Subject: Re: Base64 attachment via Futon

On Aug 21, 2012, at 8:22 AM, Stephen Ohimor <> wrote:

> Context:  I'm posting a document with an attachment.  The attachment is a Base64 url-safe
encoded string.  I am posting to a local CouchDB server (R15B) via the Futon Interface.

Why use that API? My understanding is that Futon's API is considered internal, and not supported.

It's quite easy to upload attachments using a regular PUT/POST to the document URL. You can
embed the base64'd attachment in the JSON, or you can post in MIME multipart format and send
the attachment raw.


PS: Also, I just noticed you said R15B - that's the version of *Erlang*, not of CouchDB. To
see the CouchDB version, GET /.

View raw message