Thanks, I just realized about this. The base64 is coming from the javascript frontend (chose file in a form). So I need to remove the prefix "data:image/png;base64,". Not sure how to do this without rolling my own regexes though.
On Wed, Dec 11, 2013 at 12:01 PM, Alexander Shorin <[email protected]> wrote: > Hi, > > _attachments data should be valid base64 encoded string, while you have: > > > data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAADkCAIAAACwiOf9AAAAA3NCSVQICAjb4U/gAAAgAElEQVR4nO... > > Chars : and , are invalid for base64. > -- > ,,,^..^,,, > > > On Wed, Dec 11, 2013 at 2:49 PM, Daniel Gonzalez <[email protected]> > wrote: > > Hi, > > > > (SO reference: http://stackoverflow.com/q/20516980/647991. I post there > > because formatting makes things much easier to read, replies / comments > are > > well organized, and the up/downvote mechanism works) > > > > I am performing the following operation: > > > > 1. Prepare some documents: `docs = [ doc1, doc2, ... ]`. The documents > have > > *maybe* attachments > > 2. I `POST` to `_bulk_docs` the list of documents > > 3. I get an `Exception > Problems updating list of documents (length = > 1): > > (500, ('badarg', '58'))` > > > > My `bulk_docs` is (in this case just one): > > > > [ { '_attachments': { 'image.png': { 'content_type': > > 'image/png', > > 'data': > > > 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAADkCAIAAACwiOf9AAAAA3NCSVQICAjb4U/gAAAgAElEQVR4nO...'}}, > > '_id': '08b8fc66-cd90-47a1-9053-4f6fefabdfe3', > > '_rev': '15-ff3d0e8baa56e5ad2fac4937264fb3f6', > > 'docmeta': { 'created': '2013-10-01 14:48:24.311257', > > 'updated': [ '2013-10-01 14:48:24.394157', > > '2013-12-11 08:19:47.271812', > > '2013-12-11 08:25:05.662546', > > '2013-12-11 10:38:56.116145']}, > > 'org_id': 45345, > > 'outputs_id': None, > > 'properties': { 'auto-t2s': False, > > 'content_type': 'image/png', > > 'lang': 'es', > > 'name': 'dfasdfasdf', > > 'text': 'erwerwerwrwerwr'}, > > 'subtype': 'voicemail-st', > > 'tags': ['RRR-ccc-dtjkqx'], > > 'type': 'recording'}] > > > > This is the detailed exception: > > > > Traceback (most recent call last): > > File "portal_support_ut.py", line 470, in test_UpdateDoc > > self.ps.UpdateDoc(self.org_id, what, doc_id, new_data) > > File > > > "/home/gonvaled/projects/new-wavilon-portal/python_modules/wav/ps/complex_ops.py", > > line 349, in UpdateDoc > > success, doc = database.UpdateDoc(doc_id, new_data) > > File > > > "/home/gonvaled/projects/new-wavilon-portal/python_modules/wav/cdb/core/updater.py", > > line 38, in UpdateDoc > > res = self.SaveDoc(doc_id, doc) > > File > > > "/home/gonvaled/projects/new-wavilon-portal/python_modules/wav/cdb/core/saver.py", > > line 88, in SaveDoc > > else : self.bulk_append(doc, flush, update_revision) > > File > > > "/home/gonvaled/projects/new-wavilon-portal/python_modules/wav/cdb/core/bulker.py", > > line 257, in bulk_append > > if force_send or flush or not self.timer.use_timer : > > self.BulkSend(show_progress=True) > > File > > > "/home/gonvaled/projects/new-wavilon-portal/python_modules/wav/cdb/core/bulker.py", > > line 144, in BulkSend > > results = self.UpdateDocuments(self.bulk) > > File > > > "/home/gonvaled/projects/new-wavilon-portal/python_modules/wav/cdb/core/bulker.py", > > line 67, in UpdateDocuments > > results = self.db.update(bulkdocs) > > File > > > "/home/gonvaled/.virtualenvs/python2.7.3-wavilon1/local/lib/python2.7/site-packages/couchdb/client.py", > > line 764, in update > > _, _, data = self.resource.post_json('_bulk_docs', body=content) > > File > > > "/home/gonvaled/.virtualenvs/python2.7.3-wavilon1/local/lib/python2.7/site-packages/couchdb/http.py", > > line 527, in post_json > > **params) > > File > > > "/home/gonvaled/.virtualenvs/python2.7.3-wavilon1/local/lib/python2.7/site-packages/couchdb/http.py", > > line 546, in _request_json > > headers=headers, **params) > > File > > > "/home/gonvaled/.virtualenvs/python2.7.3-wavilon1/local/lib/python2.7/site-packages/couchdb/http.py", > > line 542, in _request > > credentials=self.credentials) > > File > > > "/home/gonvaled/.virtualenvs/python2.7.3-wavilon1/local/lib/python2.7/site-packages/couchdb/http.py", > > line 398, in request > > raise ServerError((status, error)) > > ServerError: (500, ('badarg', '58')) > > > > > > What does that `badarg` mean? Is it possible to send attachments when > doing > > `_bulk_docs`? > > > > Thanks, > > Daniel >
