Working server

This commit is contained in:
Arti Zirk 2017-05-25 16:36:48 +03:00
parent 929428279c
commit 0c29750cf9
2 changed files with 16 additions and 6 deletions

View File

@ -2,6 +2,7 @@ import json
from pathlib import Path from pathlib import Path
import falcon import falcon
from falcon_multipart.middleware import MultipartMiddleware
from .tools import JsonRequest, JsonResponse, error_handler from .tools import JsonRequest, JsonResponse, error_handler
from .controllers import * from .controllers import *
@ -18,7 +19,9 @@ class AboutResource():
resp.body = json.dumps(r, indent=4) resp.body = json.dumps(r, indent=4)
app = application = falcon.API(request_type=JsonRequest, response_type=JsonResponse) app = application = falcon.API(middleware=[MultipartMiddleware()],
request_type=JsonRequest,
response_type=JsonResponse)
app.add_error_handler(ValueError, error_handler) app.add_error_handler(ValueError, error_handler)
app.add_route("/", AboutResource()) app.add_route("/", AboutResource())
@ -30,4 +33,5 @@ app.add_route("/Videos/{VideoUuid}/Streams/{StreamId}", StreamCollection())
FilesStoragePath = Path("files") FilesStoragePath = Path("files")
FilesStoragePath.mkdir(parents=True, exist_ok=True) FilesStoragePath.mkdir(parents=True, exist_ok=True)
app.add_route("/File/{FileId}", FileCollection(FilesStoragePath)) app.add_route("/Files/{FileId}", FileCollection(FilesStoragePath))
app.add_route("/Files", FileCollection(FilesStoragePath))

View File

@ -1,6 +1,6 @@
from enum import IntEnum from enum import IntEnum
from pathlib import Path from pathlib import Path
from falcon import HTTPNotFound from falcon import HTTPNotFound, HTTP_CREATED
class TaskStatus(IntEnum): class TaskStatus(IntEnum):
Created = 0 Created = 0
@ -24,9 +24,9 @@ streams = [
"StreamId":0, "StreamId":0,
"MimeType":"application/x-shockwave-flash", "MimeType":"application/x-shockwave-flash",
"Uris":[ "Uris":[
{"Uri":"http://10.42.0.1:8080/File/00000000.swf"}, {"Uri":"http://10.42.0.1:8080/Files/00000000.swf"},
{"Uri":"http://10.42.0.1:8080/File/00015000.swf"}, {"Uri":"http://10.42.0.1:8080/Files/00015000.swf"},
{"Uri":"http://10.42.0.1:8080/File/00030000.swf"} {"Uri":"http://10.42.0.1:8080/Files/00030000.swf"}
] ]
}, },
{ {
@ -88,3 +88,9 @@ class FileCollection():
resp.body= f.read() resp.body= f.read()
except FileNotFoundError: except FileNotFoundError:
raise HTTPNotFound() raise HTTPNotFound()
def on_post(self, req, resp):
f = req.get_param("file")
with open(self.path/f.filename, "wb") as fo:
fo.write(f.file.read())
resp.status = HTTP_CREATED
resp.content_location = f"/Files/{f.filename}"