#!/usr/bin/env python3 import os import sys import time from urllib.parse import parse_qs http_origin = os.environ.get('HTTP_ORIGIN', '') query = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True) name = query.get('name', ['abe.png'])[0] contentType = query.get('contentType', ['image/png'])[0] delay = True if query.get('delay', [None])[0] is not None else False origin = True if query.get('origin', [None])[0] is not None else False allowCreds = True if query.get('allowCredentials', [None])[0] is not None else False allowCache = True if query.get('allowCache', [None])[0] is not None else False if delay: time.sleep(0.000001 * int(query.get('delay', [0])[0])) if origin: sys.stdout.write('Access-Control-Allow-Origin: {}\r\n'.format(query.get('origin', [''])[0])) elif http_origin: sys.stdout.write( 'Access-Control-Allow-Origin: {}\r\n' 'Vary: Origin\r\n'.format(http_origin) ) if allowCreds: sys.stdout.write('Access-Control-Allow-Credentials: true\r\n') if allowCache: sys.stdout.write('Cache-Control: max-age=100\r\n') sys.stdout.write( 'Content-Length: {}\r\n' 'Content-Type: {}\r\n\r\n'.format(os.path.getsize(os.path.join(os.path.dirname(__file__), name)), contentType) ) sys.stdout.flush() with open(os.path.join(os.path.dirname(__file__), name), 'rb') as file: sys.stdout.buffer.write(file.read())