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