Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Members / jhb / research notes / fighting plone.app.blob

fighting plone.app.blob

by Jörg Baach last modified May 25, 2011 10:23 AM

With out current intranet application we have drag and drop for files in firefox. Works nicely for one file, but if I drag 20 or more in, there are two main problems: ConflictError and POSKeyError. The former is quite understandable - 20 concurrent write requests on the same object could cause that. The POSKeyError however signals "POSKeyError("No blob file", oid, serial)" . But I have uploaded the blob. And no matter what I try, I can't force it to be written.

Or can I? I needed to pass a StringIO instance to the BlobField.set (so that I can pass on the filename), and it turns out that this StringIO is adapted to IBlobbable using plone.app.blob.adapters.stringio.BlobbableStringIO. And there, in feed, they write to blob.open('w'), but never close it.

Changing it to

 def feed(self, blob):
        """ see interface ... """
        pos = self.context.tell()
        self.context.seek(0)
        bfile = blob.open('w')
        bfile.writelines(self.context)
        bfile.close()
        self.context.seek(pos)

seems to help a lot - at least now I can't reproduce the POSKeyError anymore.

Maybe I need to post a bug report?

Done: http://plone.org/products/plone.app.blob/issues/43

Frances
Frances says:
Dec 07, 2015 01:50 PM

Do you want to know super bowl 2015 score prediction and odds on super bowl winner
Click into site : custom football jersey

Add comment

You can add a comment by filling out the form below. Plain text formatting.

Question: What is 6 times 7?
Your answer: