Is that the actual code? You need to call createUploadURL for each blob you want to upload.
On Friday, 9 March 2012 00:03:43 UTC+11, Killian wrote: > > Hi Lads, > > This issue has been bugging me for a while now and just wasted the last 2 > days with no solution found. I'm getting desperate at this stage ! > > My aim was to use the Task Queue Pull service to run some NLP processing > outside of app engine on an external VM. That's working fine however all > the trouble started when I discovered that the output produced by the > external VM could be fed back into the Task Queue. Following the example in > the Google I/O video http://youtu.be/AM0ZPO7-lcE , I then decided to > provide the response of the task queue as a Blob upload to the app engine. > So I have the working example > http://code.google.com/appengine/docs/java/blobstore/overview.htmlimplement > and working perfectly. (ie: I can manually upload a file using > the jsp form and store it). > > The problem is that for obvious reasons I need to send this post request > from the VM programmatically. And that's were things start getting messy. > Since the video only provides an example in Python and not in java I've > been struggling find a solution to this. > > Looking around it seems like I need the httpcomponents-client-4.1.3 apache > library to create post requests. > So this is the workflow I have: > I generate the upload url from the app engine side and place it in the > task queue payload which is then retrieved by the VM correctly. > > on the VM side this is what I do: > > String uploadURL = > "http://<host>/_ah/upload/agtsaW5ndWFib3gxMHIbCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGAEM" > ; > > DefaultHttpClient httpclient = new DefaultHttpClient(); > > HttpPost method = new HttpPost(uploadURL); > > MultipartEntity entity = new MultipartEntity(); > > File f = new File("dummyFileToUpload.txt"); > > FileBody fileBody = new FileBody(f); > > entity.addPart("myFile", fileBody); > > method.setEntity(entity); > > HttpResponse response = httpclient.execute(method); > > System.out.println(response.getStatusLine()); > > PROBLEM: > > When I do this both in development mode or production mode, I receive a > "http 404 not found" response. and it seems like the upload servlet isn't > run at all (if I'm in deug mode for instance). However when I look in the > blob store, the blob was indeed uploaded correctly which is good news of > course however it means I can't get a proper response from the app engine > side and more importantly can't run anything in the upload servlet. > > I'm guessing my post request mustn't be created properly which would > explain why the app engine side is reacting weird? Is there anything > obviously wrong in my approach? > > Would really appreciate any advice on this. > > Thanks in advance :-) > > > > > > > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/Az5y4fUBguwJ. To post to this group, send email to google-appengine-java@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.