Beispiel #1
0
def main():
    import tornado.httpserver
    from tornado.options import define, options

    from tornado.platform.asyncio import AsyncIOMainLoop
    import asyncio
    AsyncIOMainLoop().install()

    define("port",
           default=config.DEFAULT_PORT,
           help="run on the given port",
           type=int)
    define("address", default='', help="run on the given address", type=str)
    define("datadir",
           default=config.DEFAULT_DATA_DIR,
           help="the directory to put uploaded data",
           type=str)
    define("fork", default=False, help="fork after startup", type=bool)
    define("cloudflare",
           default=config.CLOUDFLARE,
           help="check for Cloudflare IPs",
           type=bool)
    define("password",
           default=config.UPLOAD_PASSWORD,
           help="optional password",
           type=str)

    tornado.options.parse_command_line()
    if options.fork:
        if os.fork():
            sys.exit()

    if options.cloudflare:
        import cloudflare
        cloudflare.install()
        loop = asyncio.get_event_loop()
        loop.create_task(cloudflare.updater())

    application = tornado.web.Application(
        [
            (r"/", IndexHandler),
            (r"/" + SCRIPT_PATH, ToolHandler),
            (r"/([a-fA-F0-9]{2}/[a-fA-F0-9]{38})(?:\.\w*)?",
             tornado.web.StaticFileHandler, {
                 'path': options.datadir,
             }),
            (r"/([a-fA-F0-9/]+(?:\.\w*)?)", HashHandler),
        ],
        datadir=options.datadir,
        debug=config.DEBUG,
        template_path=os.path.join(os.path.dirname(__file__), "templates"),
        password=config.UPLOAD_PASSWORD,
    )
    http_server = tornado.httpserver.HTTPServer(
        application,
        xheaders=config.XHEADERS,
    )
    http_server.listen(options.port, address=options.address)

    asyncio.get_event_loop().run_forever()
Beispiel #2
0
def main():
  import tornado.httpserver
  from tornado.options import define, options

  from tornado.platform.asyncio import AsyncIOMainLoop
  import asyncio
  AsyncIOMainLoop().install()

  define("port", default=config.DEFAULT_PORT, help="run on the given port", type=int)
  define("address", default='', help="run on the given address", type=str)
  define("datadir", default=config.DEFAULT_DATA_DIR, help="the directory to put uploaded data", type=str)
  define("fork", default=False, help="fork after startup", type=bool)
  define("cloudflare", default=config.CLOUDFLARE, help="check for Cloudflare IPs", type=bool)
  define("password", default=config.UPLOAD_PASSWORD, help="optional password", type=str)

  tornado.options.parse_command_line()
  if options.fork:
    if os.fork():
      sys.exit()

  if options.cloudflare:
    import cloudflare
    cloudflare.install()
    loop = asyncio.get_event_loop()
    loop.create_task(cloudflare.updater())

  application = tornado.web.Application([
    (r"/", IndexHandler),
    (r"/" + SCRIPT_PATH, ToolHandler),
    (r"/([a-fA-F0-9]{2}/[a-fA-F0-9]{38})(?:\.\w*)?", tornado.web.StaticFileHandler, {
      'path': options.datadir,
    }),
    (r"/([a-fA-F0-9/]+(?:\.\w*)?)", HashHandler),
  ],
    datadir=options.datadir,
    debug=config.DEBUG,
    template_path=os.path.join(os.path.dirname(__file__), "templates"),
    password=config.UPLOAD_PASSWORD,
  )
  http_server = tornado.httpserver.HTTPServer(
    application,
    xheaders=config.XHEADERS,
  )
  http_server.listen(options.port, address=options.address)

  asyncio.get_event_loop().run_forever()