Hi, Anyone has any clues on this?
Thanks for the help Chimbu On May 16, 1:43 pm, Chimbu Aravind <[email protected]> wrote: > Hi, > > Need some help in uploading a file from Widows Mobile 6.5 device to > GAE blobstore > > In the GAE server, I have the following python code; (Its still > crude.. ) > > class GetNewUploadUrlHandler(webapp.RequestHandler): > def get(self): > upload_url = blobstore.create_upload_url('/upload') > self.response.headers['Content-Type'] = "text/plain" > self.response.out.write("%s" % upload_url) > logging.info("\n\n from hgetuploadurl - %s",upload_url) > > class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): > def post(self): > upload_files = self.get_uploads('file') > for ufile in upload_files: > blob_info = ufile > logging.info("key = %s",blob_info.key()) > # > blob_reader = blobstore.BlobReader(upload_files[0].key()) > # Further processing of the file > > In the device we have some C# code to test the implementation, which > uploads a jpg file > > private void button1_Click(object sender, EventArgs e) > { > String WebUrl = "http://xxxserver.appspot.com/ > getnewuploadurl"; //xxx is a dummy name not the real one > > HttpWebRequest httpRequest = > (HttpWebRequest)HttpWebRequest.Create(WebUrl); > httpRequest.Timeout = 15000; > httpRequest.ReadWriteTimeout = 20000; > > using (HttpWebResponse httpResponse = > (HttpWebResponse)httpRequest.GetResponse()) > { > Encoding enc = System.Text.Encoding.GetEncoding(1252); > StreamReader loResponseStream = new > StreamReader(httpResponse.GetResponseStream(), enc); > string Response = loResponseStream.ReadToEnd(); > > MessageBox.Show(Response, this.Text, > MessageBoxButtons.OK, > MessageBoxIcon.Hand, > MessageBoxDefaultButton.Button1); > { > HttpWebRequest req = > (HttpWebRequest)WebRequest.Create(Response); > req.Credentials = > CredentialCache.DefaultCredentials; > string boundary = "frontier"; > req.Method = "POST"; > > req.ContentType = string.Format("multipart/form- > data; boundary={0}", boundary); > > req.AllowWriteStreamBuffering = true; > > // Retrieve request stream > Stream reqStream = req.GetRequestStream(); > > string imageType = "image/jpeg"; > string fileName = "test.jpg"; > string header = string.Format("--{0}", boundary); > string footer = string.Format("--{0}--", > boundary); > string NewLine = "\r\n"; > > String payload1 = string.Format("{0}{1}Content- > Disposition: file; name=\"file\"; filename=\"{2}\"{1}", header, > NewLine, fileName); > String payload2=string.Format("Content-Type: {0}{1} > {1}", imageType, NewLine); > > String payload = string.Concat(payload1, > payload2); > > byte[] HeadData = > Encoding.GetEncoding("utf-8").GetBytes(payload.ToString()); > > reqStream.Write(HeadData, 0, HeadData.Length); > > // Open the local file > String path = > System.IO.Path.GetDirectoryName(this.GetType().Assembly.GetModules() > [0].FullyQualifiedName) + "\\test.jpg"; > FileStream rdr = new FileStream(path, > FileMode.Open); > > // Allocate byte buffer to hold file contents > byte[] inData = new byte[4096]; > > // loop through the local file reading each data > block > // and writing to the request stream buffer > int bytesRead = rdr.Read(inData, 0, > inData.Length); > while (bytesRead > 0) > { > reqStream.Write(inData, 0, bytesRead); > bytesRead = rdr.Read(inData, 0, > inData.Length); > } > > byte[] FootData = > Encoding.GetEncoding("utf-8").GetBytes(footer.ToString()); > reqStream.Write(FootData, 0, FootData.Length); > > rdr.Close(); > reqStream.Close(); > > req.GetResponse(); > > }; > }; > } > > Problem: > When I tested the server and the C# client in the device using the GAE > development server; it worked fine. > However after I uploaded the server to the Appspot.com, > req.GetResponse(); fails with error code 503 (Service not available) > > Only difference I see between running GAE development server and the > Server in appspot.com is the size and structure of the upload url > generated by the GAE blobstore > > eg: with appspot.com url generated > ishttp://xxxserver.appspot.com/_ah/upload/AMmfu6aEjWpmkRhysTsf8LeZPGjOU... > > Where as with the development server, it is much smaller. > > in the appspot logs, we dont see any trace of the UploadHandler > getting called. We feel, the log URL is somehow gets cut and hence > does not get called properly. > > Any help to solve/debug this will be much appreciated > > Thanks > > Chimbu -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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?hl=en.
