|
|
@@ -1,59 +0,0 @@ |
|
|
|
import argparse |
|
|
|
import BaseHTTPServer |
|
|
|
import os |
|
|
|
import SimpleHTTPServer |
|
|
|
import cgi, logging |
|
|
|
|
|
|
|
from daemonize import Daemonize |
|
|
|
|
|
|
|
|
|
|
|
class SimpleHTTPRequestHandlerWithPOST(SimpleHTTPServer.SimpleHTTPRequestHandler): |
|
|
|
UPLOAD_PATH = "upload" |
|
|
|
|
|
|
|
""" |
|
|
|
Accept all post request as file upload |
|
|
|
""" |
|
|
|
|
|
|
|
def do_POST(self): |
|
|
|
|
|
|
|
path = os.path.join(self.UPLOAD_PATH, os.path.basename(self.path)) |
|
|
|
length = self.headers["content-length"] |
|
|
|
data = self.rfile.read(int(length)) |
|
|
|
|
|
|
|
with open(path, "wb") as fh: |
|
|
|
fh.write(data) |
|
|
|
|
|
|
|
self.send_response(200) |
|
|
|
self.send_header("Content-Type", "application/json") |
|
|
|
self.end_headers() |
|
|
|
|
|
|
|
# Return the absolute path of the uploaded file |
|
|
|
self.wfile.write('{"url":"/%s"}' % path) |
|
|
|
|
|
|
|
|
|
|
|
def setup(): |
|
|
|
parser = argparse.ArgumentParser() |
|
|
|
parser.add_argument("directory") |
|
|
|
parser.add_argument("-p", "--port", dest="port", type=int, default=8080) |
|
|
|
parser.add_argument("-P", "--pid-file", dest="pid", default="web.pid") |
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
# Get absolute path to directory to serve, as daemonize changes to '/' |
|
|
|
os.chdir(args.directory) |
|
|
|
dr = os.getcwd() |
|
|
|
|
|
|
|
httpd = BaseHTTPServer.HTTPServer(("", args.port), SimpleHTTPRequestHandlerWithPOST) |
|
|
|
|
|
|
|
def run(): |
|
|
|
os.chdir(dr) |
|
|
|
httpd.serve_forever() |
|
|
|
|
|
|
|
daemon = Daemonize( |
|
|
|
app="synapse-webclient", pid=args.pid, action=run, auto_close_fds=False |
|
|
|
) |
|
|
|
|
|
|
|
daemon.start() |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
setup() |