plus-minus.appspot.com

Плюс-минус хостинг. Файлы здесь не хранятся, они создаются на
лету прямо из адресов. Содержимое файла кодируется в его имени
в url-safe base64, тип угадывается по расширению. Никакого
управления кешем пока нет, потом добавлю, если не поленюсь.

Опыт показал, что проблемы со слишком длинными именами
начинаются где-то с двух килобайт. Для иконок достаточно. :-)

Примеры: smiley.png, PGgxPmhlbGxvLCB3b3JsZDwvaDE-.html

#! /usr/bin/python

import base64, os, sys, re, mimetypes, posixpath

good = re.compile(r"^([\w-]{4})*([\w-]{2,3})?$")

def main():
    param = posixpath.basename(os.environ["PATH_INFO"])
    base, ext = posixpath.splitext(param)
    if good.match(base):
        mime, encoding = mimetypes.guess_type(param)
        mime = mime or "application/octet-stream"
        data = base64.urlsafe_b64decode(base + "==")
        print "Content-Type: %s" % mime
        print
        sys.stdout.write(data)
    else:
        print "Status: 400 Bad Request"
        print "Content-Type: text/html"
        print
        print "<h1>400 Bad Request</h1>"
        print "<p>Use urlsafe base64 for the good one"

if __name__ == "__main__":
    main()

Кир Злобин, 2011 (код), 2013 (не-дизайн)