summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-03-12 18:27:47 +0200
committerAlon Levy <alon@pobox.com>2015-03-12 18:27:47 +0200
commit2aff8bdef9f477aca4b738f40a7abd58ee0c108d (patch)
treecb7e18c7cff0e78b825a0d831e6b6056856cb88c /src
parent9e002baeb5e2770411e46b9dfd91e1bb26d4d668 (diff)
wip upload/blob
Diffstat (limited to 'src')
-rw-r--r--src/server/rz_blob.py15
-rw-r--r--src/server/rz_server.py6
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']}),