# Copyright 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Request handler to display an image from Google Cloud Storage.""" import json import os import sys import webapp2 from common import cloud_bucket from common import constants import gs_bucket class ImageHandler(webapp2.RequestHandler): """A request handler to avoid the Same-Origin problem in the debug view.""" def get(self): """Handles get requests to the ImageHandler. GET Parameters: file_path: A path to an image resource in Google Cloud Storage. """ file_path = self.request.get('file_path') if not file_path: self.error(404) return bucket = gs_bucket.GoogleCloudStorageBucket(constants.BUCKET) try: image = bucket.DownloadFile(file_path) except cloud_bucket.FileNotFoundError: self.error(404) else: self.response.headers['Content-Type'] = 'image/png' self.response.out.write(image)