1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5"""Request handler to display an image from Google Cloud Storage.""" 6 7import json 8import os 9import sys 10import webapp2 11 12from ..common import cloud_bucket 13from ..common import constants 14 15import gs_bucket 16 17 18class ImageHandler(webapp2.RequestHandler): 19 """A request handler to avoid the Same-Origin problem in the debug view.""" 20 21 def get(self): 22 """Handles get requests to the ImageHandler. 23 24 GET Parameters: 25 file_path: A path to an image resource in Google Cloud Storage. 26 """ 27 file_path = self.request.get('file_path') 28 if not file_path: 29 self.error(404) 30 return 31 bucket = gs_bucket.GoogleCloudStorageBucket(constants.BUCKET) 32 try: 33 image = bucket.DownloadFile(file_path) 34 except cloud_bucket.FileNotFoundError: 35 self.error(404) 36 else: 37 self.response.headers['Content-Type'] = 'image/png' 38 self.response.out.write(image) 39