When App Engine raised its request size limit from 1MB to 10MB, it
seemed like we would finally be able to use it for an image sharing
website as while reasonably sized digital camera images over 1MB are
very likely, it'd take an extremely professional camera image to break
the 10MB limit, which seemed like an acceptable limit to place on a
user's file uploads since those users are probably knowledgeable
enough to resize the images themselves anyways.  API calls were still
limited to 1MB, and as the examples listed on the blog post were
memcache and datastore, it seemed to make sense since App Engine is
probably still designed to place a 1MB limit on its datastore
entries.   This seemed like it'd be ok since it should be possible to
use the images API to resize any input images to less than 1MB before
storing them in the datastore, completely acceptable for our task.
However, after trying this and looking into some server errors, it
seems the images API is also limited to 1MB input files (which fits
with the 1MB limit on API calls, the fact just didn't register at
first).  At least, that's how I'm interpreting the RequestTooLargeError
(The request to API call images.Transform() was too large) I get when
submitting a 1.5MB file.

Is the limit on the images API by design/constraint?  I imagine image
API calls aren't split across computers in a cluster or anything and
are run in place, with possibly some temp memory that's cleared
immediately, which makes having a limit smaller than the request size
seem a little strange to me.  A 1MB limit on image files makes it hard
to support user submitted image uploads in a practical setting.  I
know it's possible to split the image over datastore entries just to
store them, but we also need to be able to resize them to generate
thumbnails, etc.

And if anyone's come up with a workaround splitting the input file
into parts to resize in parts, it'd be nice to hear.  While PNG uses
DEFLATE and might not work, JPEG as far as I know cosine transforms
blocks independently so it seems like it could be possible. Though
it'd probably increase the load on the servers more than just having a
>1MB API call limit.

Thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to