diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/rz_blob.py | 15 | ||||
| -rw-r--r-- | src/server/rz_server.py | 6 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/server/rz_blob.py b/src/server/rz_blob.py new file mode 100644 index 00000000..03fbf321 --- /dev/null +++ b/src/server/rz_blob.py @@ -0,0 +1,15 @@ +from flask import Flask, send_from_directory, request +from werkzeug import secure_filename + +def upload(): + f = request.files['file'] + f.save('temp') + checksum = filechecksum('temp', f.filename) + d = os.path.join(uploads_dir, checksum) + makedirs(d) + shutil.move('temp', os.path.join(d, secure_filename(f.filename))) + return os.path.join('/', 'blob', checksum, secure_filename(f.filename)) + + +def retreive(): + pass diff --git a/src/server/rz_server.py b/src/server/rz_server.py index b96290bc..96aff2ff 100644 --- a/src/server/rz_server.py +++ b/src/server/rz_server.py @@ -23,6 +23,7 @@ from rz_mesh import init_ws_interface from rz_req_handling import make_response__http__empty import rz_server_ctrl import rz_user +import rz_blob from rz_user_db import User_DB @@ -225,6 +226,11 @@ def init_rest_interface(cfg, flask_webapp): rest_entry('/pw-reset', rz_user.rest__pw_reset, {'methods': ['GET', 'POST']}), rest_entry('/signup', rz_user.rest__user_signup, {'methods': ['GET', 'POST']}), + # upload endpoints - this might change to external later, keep minimal and separate + rest_entry('/blob/upload', rz_blob.upload, {'methods': ['POST']}), + # [!] this is for development only. served from frontend web server in production + rest_entry('/blob/uploads/<path:path>', rz_blob.retreive, {'methods': ['GET', 'DELETE']}), + # server administration: access restricted to localhost rest_entry('/monitor/server-info', rz_server_ctrl.monitor__server_info, {'methods': ['GET']}), rest_entry('/monitor/user/list', rz_server_ctrl.rest__list_users, {'methods': ['GET']}), |
