couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Gonzalez <gonva...@gonvaled.com>
Subject Re: bulk update failing when document has attachments?
Date Wed, 11 Dec 2013 11:07:56 GMT
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 <kxepal@gmail.com> 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 <gonvaled@gonvaled.com>
> 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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message