[appengine-java] Re: How to debug blobstore uploads with 405
Answered my own question... I was redirecting to a bad success url, which didn't support POST. Not the most informative error, but still understandable. On Aug 27, 12:58 pm, tempy fay...@gmail.com wrote: Hello all, I am trying to upload to the blobstore from an installed c# client, not a browser. So far, I've only tried the development server... I can see in the datastore viewer that the blobs are being correctly created because there are corresponding blobinfo objects that correctly reflect the uploaded data, but my client gets a 405 response from the blobstore and my success url never gets invoked. How does one go about debugging this? I don't see any kind of output from the blobstore on the eclipse console, so I'm not sure where to start. Thanks, Mike -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: i18n translations
I'd be glad to translate it in French, if not already done. I'd also be glad if you could do the reverse for me : translate these resources in Italian : http://code.google.com/p/memwords/source/browse/trunk/src/StripesResources.properties (or http://code.google.com/p/memwords/source/browse/trunk/src/StripesResources_fr.properties in French) JB. On Aug 5, 2:52 pm, ale aleee...@gmail.com wrote: Hi everybody, I'm finishing to develop a web application with GWT + GAE, and I want to publish in multiple languages. The application is about sport, and the message file is about 400 lines mostly consist of one word. Is there anyone who can translate it into his native language? In return he will receive my infinite gratitude, I will write his/her name in the thanks page of my site with a link to what he wants. And of course I will be happy to return the favor by translating into Italian! Any language is OK, even English, (I'n not speak wery well, so will be full of errors!) I posted the same request yesterday on the GWT group and 3 person answer me for spanish, marathi, hindi and swedish. Thank you, thank you! Alessandro -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: problem using limits and offsets with App Engine Low Level API
I read that pagination has an unpublished limit of 2000. Anyone know it that's still true? Seems to be the case in my testing.. This breaks my app? Can anyone help? On Aug 25, 10:09 pm, tomkarren tkar...@gmail.com wrote: Hi, I'm attempting to iterate through a large number of entities (3000) using limits and offsets. On the first pass my limit is 500 and my offset is 0. I get 500 results. On the second pass with limit 500 and offset 500, I get 500 results. This approach seems to work ok until I get to limit 500 with offset 1500. On that pass, I get 1000 results, which seems pretty strange given I set a limit of 500. Code Snippet: DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); IterableEntity results = (IterableEntity) ds.prepare(query).asIterable(withLimit(500).offset(1500)); for (Entity result : results){ Any input would be appreciated. Thanks, -Tom -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Unable to upload application through eclipse3.5
Hi All, Can anybody let me know how long it takes to get google app enigne account activated.I have created two application ids one week back and till date i havent received any mail from google about my account activation. I am not able to upload application using eclipse 3.5 deploy option.I am getting the following error message Unable to assign value 'editInfo' to attribute 'url':Value 'editInfo' for key url does not match expression '^(?!\^)/|\.|(\(.).*(?!\$).$' Kindly help me out in this issue, please find attached web.xml file used. Thanks in advance. -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. ?xml version=1.0 encoding=UTF-8? !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd; web-app servlet servlet-namesaveInfo/servlet-name servlet-classcom.atos.bezoeker.SaveVisitorInfoServlet/servlet-class /servlet servlet servlet-nameeditInfo/servlet-name servlet-classcom.atos.bezoeker.EditVisitorInfoServlet/servlet-class /servlet servlet servlet-namedeleteInfo/servlet-name servlet-classcom.atos.bezoeker.DeleteVisitorInfoServlet/servlet-class /servlet servlet servlet-namelogin/servlet-name servlet-classcom.atos.bezoeker.VisitorLoginServlet/servlet-class /servlet servlet-mapping servlet-namesaveInfo/servlet-name url-patternsaveInfo/url-pattern /servlet-mapping servlet-mapping servlet-nameeditInfo/servlet-name url-patterneditInfo/url-pattern /servlet-mapping servlet-mapping servlet-namedeleteInfo/servlet-name url-patterndeleteInfo/url-pattern /servlet-mapping servlet-mapping servlet-namelogin/servlet-name url-patternlogin/url-pattern /servlet-mapping welcome-file-list welcome-filehome.html/welcome-file /welcome-file-list /web-app
[appengine-java] Problem with persistence
Hi! I have a problem with persist the class Fecha. The class Fecha: The following classes are: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Fecha implements Serializable { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent private String nombre; @Persistent private Date fechaIni; @Persistent private Date fechaFin; @Persistent(defaultFetchGroup = true) ListPartido partidos; private Long id2; private Long kind; The class RegFechaUsuario: public class RegFechaUsuario implements Serializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent private int puntos; @Persistent private Long idUsuarioFecha; @Persistent private Long idFechaOriginal; @Persistent private Fecha fechaRegUsuario; .. The method where the mistake happens: Transaction tx = pm.currentTransaction(); try { tx.begin(); //at makePersistent is the exception pm.makePersistentAll(regFechaUsuario); tx.commit(); } finally { The exception: Problem accessing /Prode/JugarFecha.action. Reason: oid is not instanceof javax.jdo.identity.ObjectIdentity Caused by: java.lang.ClassCastException: oid is not instanceof javax.jdo.identity.ObjectIdentity at model.Fecha.jdoCopyKeyFieldsFromObjectId(Fecha.java) at org.datanucleus.store.mapped.mapping.PersistenceCapableMapping.setObjectAsValue(PersistenceCapableMapping.java: 657) at org.datanucleus.store.mapped.mapping.PersistenceCapableMapping.setObject(PersistenceCapableMapping.java: 364) at org.datanucleus.store.appengine.DatastoreRelationFieldManager $1.setObjectViaMapping(DatastoreRelationFieldManager.java:136) at org.datanucleus.store.appengine.DatastoreRelationFieldManager $1.apply(DatastoreRelationFieldManager.java:112) at org.datanucleus.store.appengine.DatastoreRelationFieldManager.storeRelations(DatastoreRelationFieldManager.java: 81) at org.datanucleus.store.appengine.DatastoreFieldManager.storeRelations(DatastoreFieldManager.java: 955) at org.datanucleus.store.appengine.DatastorePersistenceHandler.storeRelations(DatastorePersistenceHandler.java: 546) at org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPostProcess(DatastorePersistenceHandler.java: 304) at org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java: 256) at org.datanucleus.store.appengine.BatchPutManager.processBatchState(BatchPutManager.java: 35) at org.datanucleus.store.appengine.BatchManager.finish(BatchManager.java: 54) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager $BatchManagerWrapper.call(DatastoreJDOPersistenceManager.java:127) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager $BatchManagerWrapper.access$200(DatastoreJDOPersistenceManager.java: 121) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.makePersistentAll(DatastoreJDOPersistenceManager.java: 98) at org.datanucleus.jdo.JDOPersistenceManager.makePersistentAll(JDOPersistenceManager.java: 703) at controllers.ControladorTorneo.crearRegFechaUsuario(ControladorTorneo.java: 299) at struts.action.RegistrarJugada.crearFechaParaRegistro(RegistrarJugada.java: 78) at struts.action.RegistrarJugada.registrarJugada(RegistrarJugada.java: 63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java: 100) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java: 441) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java: 280) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 243) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java: 165) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java: 252) at
Re: [google-appengine] Channel API with TyphoonAE
http://trivia-quiz.typhoonae.org:8080/ It works fine in firefox. IE8 failed with JSON undefined. 2010/8/28 Tobias tobias.rodae...@googlemail.com Hi, I'm happy to announce that TyphoonAE (only trunk, for now) already has experimental support for the new Channel API. We have the Google IO Trivia Quiz running on our server http://trivia-quiz.typhoonae.org:8080/ For more detailed information, visit this http://code.google.com/p/typhoonae/wiki/ChannelAPI wiki page and follow us on Twitter http://twitter.com/TyphoonAE to be informed on upcoming releases. Thanks! Tobias -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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-appeng...@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.
[google-appengine] Re: Channel API with TyphoonAE
On Aug 28, 9:53 am, Tom Wu service.g2...@gmail.com wrote: http://trivia-quiz.typhoonae.org:8080/ It works fine in firefox. IE8 failed with JSON undefined. Thanks a lot for reporting this! You're right, the Javascript still needs some tweaks. - Tobias -- 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-appeng...@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.
Re: [google-appengine] Re: Channel API with TyphoonAE
Works great in Safari 5.0 and Chrome 5.0 on Mac OS X. Fantastic work! Nick On 28 August 2010 18:25, Tobias tobias.rodae...@googlemail.com wrote: On Aug 28, 9:53 am, Tom Wu service.g2...@gmail.com wrote: http://trivia-quiz.typhoonae.org:8080/ It works fine in firefox. IE8 failed with JSON undefined. Thanks a lot for reporting this! You're right, the Javascript still needs some tweaks. - Tobias -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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-appeng...@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.
[google-appengine] access denied when reading file out of war directory on appspot
Hello, I'm developing a webservice on the app engine and came across this problem: My webservice receives a xml file which should be validated against a *.dtd file on the app engine. the *.dtd file lies in the war directory. And the name of the *.dtd file is referenced in the xml document with a doctype like !DOCTYPE member SYSTEM Member.dtd. This all works fine on my local machine but when i try to call it on the appspot the system is not able to read the *.dtd files and throws this exception. java.security.AccessControlException: access denied (java.io.FilePermission /base/Member.dtd read) what can i do? greets -- 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-appeng...@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.
[google-appengine] Re: Channel API with TyphoonAE
Hi Tobias. Actually one slight wart with chromium on linux with the demo. If I clicked on the text of the question it would submit/send the respone. If I clicked on the radio button it wouldn't. But cheers on getting it up and running. T On Aug 28, 4:25 pm, Tobias tobias.rodae...@googlemail.com wrote: On Aug 28, 9:53 am, Tom Wu service.g2...@gmail.com wrote: http://trivia-quiz.typhoonae.org:8080/ It works fine in firefox. IE8 failed with JSON undefined. Thanks a lot for reporting this! You're right, the Javascript still needs some tweaks. - Tobias -- 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-appeng...@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.
[google-appengine] OAuth integration issue with Google Apps
I am having trouble accessing protected resources through OAuth. I have an AppEngine application (services-systemical) registered through my Google Apps domain (systemical.com), a CNAME pointing to my application (services.systemical.com , working perfectly with my other non-Oauth services). I have registered my application and got the consumer key and consumer secret for services.systemical.com. With my desktop client application (I am using Leah Culver's oauth v1.0a python library on the client side): I am able to get a request token, have the user authorize the application, upgrade the token to an access token (with the verification code). Now the issue is: when I make an OAuth HTTP POST (body containing the request data) AppEngine always raises an oauth.OAuthRequestError. I am not doing anything fancy for starters: class EndPoint(webapp.RequestHandler): def post(self, fragment): body=self.request.body headers=self.request.headers try: user = oauth.get_current_user() logging.info(EndPoint.post: fragment(%s) data=%s % (fragment, body)) except oauth.OAuthRequestError, e: logging.info(EndPoint.post: headers: %s % headers) logging.info(EndPoint.post: body: %s % body) What step could I be missing? Any help would be greatly appreciated! Thanks a million! -- 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-appeng...@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.
[google-appengine] SSO with built-in OpenId is possible?
Hey everybody, Is it possible to achieve SSO with the buil-in OpenId? I've been trying to integrate a Marketplace app and get the user logged in when coming from Google Apps (the admin panel or universal navigation). I failed miserably, then now I found this: The one exception to this is applications which do hybrid OpenID/ OAuth — whitelisting does not currently work with this approach. [1] I assume that I have to implement OpenId using a library instead of using the built-in one to achieve SSO with Google Apps in my app? Or is it possible to implement SSO with built-in OpenId? And if so, do you know if there are code examples anywhere? thanks, rodrigo [1] http://code.google.com/googleapps/marketplace/sso.html -- 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-appeng...@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.
[google-appengine] Will OpenID providors other than Google ever be supported by built-in OAuth?
Hello all, The subject says it all... My app consists of a GAEj app and an installed mobile client that connects to it, and is authorized via OAuth. The GAEj uses openid for authentication. I'm using the built- in implementation for now, as its ok to only support google as the openid provider for the time being. However, eventually I would like to support other openid providers... does anyone know if its safe to expect support for other openid providers some time in the future? Cheers, Mike -- 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-appeng...@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.
[google-appengine] Re: Channel API with TyphoonAE
After a little investigation I found out that the same occurs with the original demo at http://io-trivia-quiz.appspot.com and is due to a minor issue in the demo's Javascript http://code.google.com/p/trivia-quiz/source/browse/trunk/src/index.html#298 which can very likely be fixed by downloading the IE8 update from this http://support.microsoft.com/kb/976662 location. - Tobias On Aug 28, 10:25 am, Tobias tobias.rodae...@googlemail.com wrote: On Aug 28, 9:53 am, Tom Wu service.g2...@gmail.com wrote: http://trivia-quiz.typhoonae.org:8080/ It works fine in firefox. IE8 failed with JSON undefined. Thanks a lot for reporting this! You're right, the Javascript still needs some tweaks. - Tobias -- 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-appeng...@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.
[google-appengine] Re: Will OpenID providors other than Google ever be supported by built-in OAuth?
They're supported now. http://blog.notdot.net/2010/05/Using-OpenID-authentication-on-App-Engine On Aug 28, 6:16 pm, tempy fay...@gmail.com wrote: Hello all, The subject says it all... My app consists of a GAEj app and an installed mobile client that connects to it, and is authorized via OAuth. The GAEj uses openid for authentication. I'm using the built- in implementation for now, as its ok to only support google as the openid provider for the time being. However, eventually I would like to support other openid providers... does anyone know if its safe to expect support for other openid providers some time in the future? Cheers, Mike -- 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-appeng...@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.
[google-appengine] Re: How do I use get_serving_url correctly?
I don't think so. AFAIK the URL is intended to be persisted - not regenerated repeatedly. On Aug 27, 8:36 am, Nickolas Daskalou n...@daskalou.com wrote: Ikai, is there any way of doing this asynchronously (like URLFetch fetch() calls)? Eg: (copied mostly fromhttp://code.google.com/appengine/docs/python/urlfetch/asynchronousreq... ) from google.appengine.api import images # ... blob_keys = [..., ..., ..] blob_key_serving_urls = [] size = ... crop = ... def handle_result(rpc): url = rpc.get_result() blob_key_serving_urls.append(url) # Use a helper function to define the scope of the callback. def create_callback(rpc): return lambda: handle_result(rpc) rpcs = [] for blob_key in blob_keys: images.create_rpc() rpc.callback = create_callback(rpc) images.make_get_serving_url_call(rpc, blob_key, size, crop) rpcs.append(rpc) # ... for rpc in rpcs: rpc.wait() # blob_key_serving_urls should now contain the serving URLs. Or should we add this as a feature request? Nick On 27 August 2010 10:56, Ikai L (Google) ika...@google.com wrote: Yes, you can cache the result. In practice, subsequent calls of get_serving_url on the same blob should be faster, but if you have more new blobs than old ones on a page it can be slow. The resulting URL only becomes invalid if the blob is deleted. On Tue, Aug 24, 2010 at 1:53 PM, Flips p...@script-network.com wrote: Hi, how do I use get_serving_url correctly if I'd like to host a gallery of 28 pictures? I currently fetch all blob_keys and call 28 times the get_serving_url method to get my image urls. But this attempt is really slow (about 12 seconds). Would it be smarter to call get_serving_url if the blob has been created and store the image url in datastore? Best Regards Philip -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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-appeng...@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.
[google-appengine] Re: Server Error
Hi Check your app.yaml for problems. This seems to one cause of this. (though I have found the error message varies) I have found for instance error handler paths can't overlap with static file handlers. i.e. error_handlers: -file static/error.html will conflict with - url: /images static_dir: static Rgds T On Aug 27, 10:52 am, Tsolmon Narantsogt mnt...@gmail.com wrote: Hello everybody When i run this command ./appcfg.py update myproject/ i got a following this error help me Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please reporthttp://code.google.com/appengine/community.htmlyour problem and mention this error message and the query that caused it. -- 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-appeng...@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.
Re: [google-appengine] Re: How do I use get_serving_url correctly?
Matt, even if that's the case, it'd be nice if the delay of dozens of get_serving_url() API calls could be parallelised and not added up sequentially (which is what I was trying to find out in my long-winded question to Ikai). Nick On 29 August 2010 06:19, Matt H matt2...@gmail.com wrote: I don't think so. AFAIK the URL is intended to be persisted - not regenerated repeatedly. On Aug 27, 8:36 am, Nickolas Daskalou n...@daskalou.com wrote: Ikai, is there any way of doing this asynchronously (like URLFetch fetch() calls)? Eg: (copied mostly fromhttp:// code.google.com/appengine/docs/python/urlfetch/asynchronousreq... ) from google.appengine.api import images # ... blob_keys = [..., ..., ..] blob_key_serving_urls = [] size = ... crop = ... def handle_result(rpc): url = rpc.get_result() blob_key_serving_urls.append(url) # Use a helper function to define the scope of the callback. def create_callback(rpc): return lambda: handle_result(rpc) rpcs = [] for blob_key in blob_keys: images.create_rpc() rpc.callback = create_callback(rpc) images.make_get_serving_url_call(rpc, blob_key, size, crop) rpcs.append(rpc) # ... for rpc in rpcs: rpc.wait() # blob_key_serving_urls should now contain the serving URLs. Or should we add this as a feature request? Nick On 27 August 2010 10:56, Ikai L (Google) ika...@google.com wrote: Yes, you can cache the result. In practice, subsequent calls of get_serving_url on the same blob should be faster, but if you have more new blobs than old ones on a page it can be slow. The resulting URL only becomes invalid if the blob is deleted. On Tue, Aug 24, 2010 at 1:53 PM, Flips p...@script-network.com wrote: Hi, how do I use get_serving_url correctly if I'd like to host a gallery of 28 pictures? I currently fetch all blob_keys and call 28 times the get_serving_url method to get my image urls. But this attempt is really slow (about 12 seconds). Would it be smarter to call get_serving_url if the blob has been created and store the image url in datastore? Best Regards Philip -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- 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.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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-appeng...@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.