Added as feature request: http://code.google.com/p/googleappengine/issues/detail?id=2536
<http://code.google.com/p/googleappengine/issues/detail?id=2536>Stuart On Fri, Dec 18, 2009 at 11:16 AM, Stuart Moffatt <[email protected]>wrote: > App Engine team: > > Thanks for introducing BlobstoreService. It looked like it was going > to solve a major impediment in an application I am prototyping, but I > hit the wall (again) with only being able to regurgitate blobs during > an http response, and not do anything useful with them in the cloud. > > I am using BlobstoreService to upload and store serialized spatial > indexes. I want to be able to query them with point geometry, but once > they are in the store there is no way for me to fetch them again > within the context of my application. I can delete(key) in an > application context, and serve(key) them directly back to the browser, > but I cannot fetch them from the blobstore and operate on them, which > is exactly what I need to do in my app. > > For a minute I was tricked into thinking that I could use the URL > Fetch API from within my app, since serve(key) pumps out the data in > response to a get call. But an internal URL Fetch is also limited to > 1MB, and I receive the dreaded: "The response from url > http://localhost:8888/serve/blob?blob-key=2rdXcmNBIZz3_mDE8msbXg was > too large." (Of course, if I just hit that same URL in my browser, I > download the data just fine -- its just within a programmatic App > Engine context that I cannot fetch that URL.) > > "All I want for Christmas is my two front teeth." In this case, the > teeth are either or both of the following hooks: > > 1) New URL Fetch API feature realizes that it is calling the > BlobstoreService, and lets data > 1MB pass through. Since > BlobstoreService is handling the response internally, add an extra > header that URL Fetch understands to lift the size limit restriction. > You could even restrict this to only allow URL Fetch of blobs in the > same App Engine application. > > 2) Expose a BlobstoreService.get(BlobKey key) method so applications > can fetch blobs after they are stored and do something useful with > them -- like geospatial operations on spatial index blobs, or opening > stored zip archives and processing contents with task queues. No > worries if people go blob crazy -- billing is turned on, and real > fancy querying needs to be done with basic datastore entities anyways. > > Please consider one or both of these options. Option #2 sounds like a > no-brainer to me, because somewhere under the serve() hood you must be > fetching the blob by key already. > > Stuart -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
