def serve_file(file_path): response = Response() size = os.path.getsize(file_path) mimetype = mimetypes.guess_type(file_path) response.set_header("Content-type", mimetype[0] or 'text/plain') response.set_header("Content-length", str(size)) response.set_header("Cache-Control", 'public, max-age=22222222') response.content = open(file_path, 'rb') response.type = "file" return response
def serve_file(file_path): response = Response() fs = os.stat(file_path) mimetype = mimetypes.guess_type(file_path) response.set_header("Content-length", str(fs.st_size)) if file_path.endswith('.manifest'): response.set_header("Content-type", 'text/cache-manifest') response.set_header("Expires", 'access') else: response.set_header("Content-type", mimetype[0] or 'text/plain') response.set_header("Last-Modified", date_time_string(fs.st_mtime)) response.content = open(file_path, 'rb') response.type = "file" return response
def generate_exception_report(e, path, params): response = Response() full_tb = traceback.extract_tb(sys.exc_info()[2]) tb_str = '' for tb in full_tb: tb_str += "File '%s', line %s, in %s; " % (tb[0], tb[1], tb[2]) report = {} report['exception'] = str(e) report['traceback'] = tb_str report['url'] = path.replace('/pico/', '/') report['params'] = dict([(k, _value_summary(params[k])) for k in params]) log(json.dumps(report, indent=1)) response.content = report response.status = '500 ' + str(e) return response
def not_found_error(path): response = Response() response.status = '404 NOT FOUND' response.content = '404 File not found' response.type = 'plaintext' return response