def get(self, media_id, unused_filename): def get_param(name, error_message=None): """Convenience function to get a parameter from request. Returns: String value of field if it exists, else ''. If the key does not exist at all, it will return None. """ try: value = self.request.params[name] if isinstance(value, cgi.FieldStorage): value = value.value return value or '' except KeyError: #error_messages.append(error_message) return None user_info = get_user_info() #if user_info is None and get_param("password") == "xx": # user_info = UserInfo.get_by_key_name('user:[email protected]') if user_info is None: self.redirect('/?error_message=%s' % 'log-in required') media_object = MediaObject.get_by_id(long(media_id), parent=user_info) if media_object is None: self.redirect('/?error_message=Unidentified+object') return last_modified_string = media_object.creation.strftime("%a, %d %b %Y %H:%M:%S GMT") self.response.headers['Cache-Control'] = "private" self.response.headers['Content-Type'] = str(media_object.guessed_type) self.response.headers['Last-Modified'] = last_modified_string expires = media_object.creation + datetime.timedelta(days=30) self.response.headers['Expires'] = expires.strftime("%a, %d %b %Y %H:%M:%S GMT") # Caching if self.request.headers.has_key("If-Modified-Since"): ims = self.request.headers.get("If-Modified-Since") if ims == last_modified_string: self.error(304) return modsince = datetime.datetime.strptime(ims, "%a, %d %b %Y %H:%M:%S %Z") if modsince >= media_object.creation: self.error(304) return blob_key = media_object.blob.key() resize = self.request.get('resize') if resize: image = images.Image(blob_key=str(blob_key)) image.resize(width=int(resize), height=int(resize)) self.response.out.write(image.execute_transforms()) return if 'Range' in self.request.headers: self.response.headers['Range'] = self.request.headers['Range'] self.send_blob(blob_key, str(media_object.guessed_type))
def get(self, media_id, unused_filename): user_info = get_user_info() if user_info is None: self.redirect('/?error_message=%s' % 'log-in required') media_object = MediaObject.get_by_id(long(media_id), parent=user_info) if media_object is None: self.redirect('/?error_message=Unidentified+object') return last_modified_string = media_object.creation.strftime( "%a, %d %b %Y %H:%M:%S GMT") self.response.headers['Cache-Control'] = "public, max-age=31536000" self.response.headers['Content-Type'] = str(media_object.guessed_type) self.response.headers['Last-Modified'] = last_modified_string expires = media_object.creation + datetime.timedelta(days=30) self.response.headers['Expires'] = expires.strftime( "%a, %d %b %Y %H:%M:%S GMT") # Caching if self.request.headers.has_key("If-Modified-Since"): ims = self.request.headers.get("If-Modified-Since") if ims == last_modified_string: self.error(304) return modsince = datetime.datetime.strptime(ims, "%a, %d %b %Y %H:%M:%S %Z") if modsince >= media_object.creation: self.error(304) return blob_key = media_object.blob.key() resize = self.request.get('resize') if resize: image = images.Image(blob_key=str(blob_key)) image.resize(width=int(resize), height=int(resize)) self.response.out.write(image.execute_transforms()) return if 'Range' in self.request.headers: self.response.headers['Range'] = self.request.headers['Range'] self.send_blob(blob_key, str(media_object.guessed_type))
def get(self, media_id, unused_filename): user_info = get_user_info() if user_info is None: self.redirect('/?error_message=%s' % 'log-in required') media_object = MediaObject.get_by_id(long(media_id), parent=user_info) if media_object is None: self.redirect('/?error_message=Unidentified+object') return last_modified_string = media_object.creation.strftime("%a, %d %b %Y %H:%M:%S GMT") self.response.headers['Cache-Control'] = "public, max-age=31536000" self.response.headers['Content-Type'] = str(media_object.guessed_type) self.response.headers['Last-Modified'] = last_modified_string expires = media_object.creation + datetime.timedelta(days=30) self.response.headers['Expires'] = expires.strftime("%a, %d %b %Y %H:%M:%S GMT") # Caching if self.request.headers.has_key("If-Modified-Since"): ims = self.request.headers.get("If-Modified-Since") if ims == last_modified_string: self.error(304) return modsince = datetime.datetime.strptime(ims, "%a, %d %b %Y %H:%M:%S %Z") if modsince >= media_object.creation: self.error(304) return blob_key = media_object.blob.key() resize = self.request.get('resize') if resize: image = images.Image(blob_key=str(blob_key)) image.resize(width=int(resize), height=int(resize)) self.response.out.write(image.execute_transforms()) return if 'Range' in self.request.headers: self.response.headers['Range'] = self.request.headers['Range'] self.send_blob(blob_key, str(media_object.guessed_type))
def get(self, media_id, unused_filename): def get_param(name, error_message=None): """Convenience function to get a parameter from request. Returns: String value of field if it exists, else ''. If the key does not exist at all, it will return None. """ try: value = self.request.params[name] if isinstance(value, cgi.FieldStorage): value = value.value return value or '' except KeyError: #error_messages.append(error_message) return None user_info = get_user_info() #if user_info is None and get_param("password") == "xx": # user_info = UserInfo.get_by_key_name('user:[email protected]') if user_info is None: self.redirect('/?error_message=%s' % 'log-in required') media_object = MediaObject.get_by_id(long(media_id), parent=user_info) if media_object is None: self.redirect('/?error_message=Unidentified+object') return last_modified_string = media_object.creation.strftime( "%a, %d %b %Y %H:%M:%S GMT") self.response.headers['Cache-Control'] = "private" self.response.headers['Content-Type'] = str(media_object.guessed_type) self.response.headers['Last-Modified'] = last_modified_string expires = media_object.creation + datetime.timedelta(days=30) self.response.headers['Expires'] = expires.strftime( "%a, %d %b %Y %H:%M:%S GMT") # Caching if self.request.headers.has_key("If-Modified-Since"): ims = self.request.headers.get("If-Modified-Since") if ims == last_modified_string: self.error(304) return modsince = datetime.datetime.strptime(ims, "%a, %d %b %Y %H:%M:%S %Z") if modsince >= media_object.creation: self.error(304) return blob_key = media_object.blob.key() resize = self.request.get('resize') if resize: image = images.Image(blob_key=str(blob_key)) image.resize(width=int(resize), height=int(resize)) self.response.out.write(image.execute_transforms()) return if 'Range' in self.request.headers: self.response.headers['Range'] = self.request.headers['Range'] self.send_blob(blob_key, str(media_object.guessed_type))