import os import urllib import webapp2 from google.appengine.ext import blobstore from google.appengine.ext.webapp import blobstore_handlers class MainHandler(webapp2.RequestHandler): def get(self): upload_url = blobstore.create_upload_url('/upload') self.response.out.write('') self.response.out.write('
' % upload_url) self.response.out.write("""Upload File:
""") class UploadUrlHandler(webapp2.RequestHandler): def get(self): upload_url = blobstore.create_upload_url('/upload') self.response.out.write(upload_url) class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(self): upload_files = self.get_uploads('file') # 'file' is file upload field in the form blob_info = upload_files[0] self.redirect('/serve/%s' % blob_info.key()) class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler): def get(self, resource): resource = str(urllib.unquote(resource)) blob_info = blobstore.BlobInfo.get(resource) self.send_blob(blob_info) class QueryStringHandler(webapp2.RequestHandler): def get(self): self.response.out.write(self.request.query_string) app = webapp2.WSGIApplication([('/', MainHandler), ('/querystring', QueryStringHandler), ('/upload_url', UploadUrlHandler), ('/upload', UploadHandler), ('/serve/([^/]+)?', ServeHandler)], debug=True)