import os import urllib from google.appengine.ext import blobstore from google.appengine.ext import webapp from google.appengine.ext.webapp import blobstore_handlers from google.appengine.ext.webapp import template from google.appengine.ext.webapp.util import run_wsgi_app class MainHandler(webapp.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:
""") for b in blobstore.BlobInfo.all(): self.response.out.write('
  • ' + str(b.filename) + ' del') class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(self): upload_files = self.get_uploads('file') blob_info = upload_files[0] self.redirect('/') class DeleteHandler(blobstore_handlers.BlobstoreUploadHandler): def get(self, blob_key): blob_key = str(urllib.unquote(blob_key)) blobs = blobstore.BlobInfo.all() for blob in blobs: if str(blob.key())==blob_key: blob.delete() self.redirect('/') class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler): def get(self, blob_key): blob_key = str(urllib.unquote(blob_key)) if not blobstore.get(blob_key): self.error(404) else: self.send_blob(blob_key) #self.send_blob(blobstore.BlobInfo.get(blob_key), save_as=True) def main(): application = webapp.WSGIApplication( [('/', MainHandler), ('/upload', UploadHandler), ('/serve/([^/]+)?', ServeHandler), ('/del/([^/]+)?', DeleteHandler), ], debug=True) run_wsgi_app(application) if __name__ == '__main__': main()