I\'m sure the answer to this question is easy, but for me it\'s proven to be very frustrating since I can\'t put any solution I\'ve found into practical code for my own use.
I have created a gist showing how to upload and use GCS files: https://gist.github.com/voscausa/9541133
This is the code to handle the multipart form post:
class GcsUpload(webapp2.RequestHandler):
def post(self):
field_storage = self.request.POST.get("file", None)
if isinstance(field_storage, cgi.FieldStorage):
file_name = field_storage.filename
dyn = gcs_data.Dynamics(id=file_name, filename=file_name)
gcs_file_name = gcs_data.gcs_write_blob(dyn, field_storage.file.read())
gcs_data.gcs_serving_url(dyn)
dyn.put()
logging.info('Uploaded and saved in default GCS bucket : ' + gcs_file_name)
self.response.headers[b'Content-Type'] = gcs_data.gcs_content_type(dyn)
self.response.write(gcs_data.gcs_read_blob(dyn))
else:
logging.error('GCS Upload failed')