add ID based delete and listing

This commit is contained in:
q
2025-01-28 11:51:19 +02:00
parent 3da6a0f3c1
commit 7fcf30a68a
2 changed files with 26 additions and 8 deletions

View File

@@ -20,6 +20,7 @@ from utils.files import (
db_add_download,
db_delete_file,
db_get_file,
db_get_name,
db_maintenance,
db_store_file,
file_details,
@@ -45,7 +46,7 @@ logging.basicConfig(
format=f"[%(asctime)s] [%(levelname)s] %(message)s",
)
__VERSION__ = "20250123.0"
__VERSION__ = "20250128.0"
app = Flask(__name__)
app.config.from_object(__name__)
app.config.from_prefixed_env()
@@ -195,9 +196,9 @@ def upload_token():
token = new_upload_token(expires)
return token, 200
@app.route("/details/<token>", methods=["GET"])
@app.route("/details/<token>/<name>", methods=["GET"])
def details(token, name):
def details(token, name=None):
"""
Get JSON of file details. Size, added date, download times, etc.
@@ -209,6 +210,8 @@ def details(token, name):
secret = request.headers.get("Secret", "")
if secret != app.config["ACCESS_TOKEN"]:
return "Error", 401
if name is None:
name = db_get_name(token)[0]
details = file_details(token, name)
if details["allowed_ip"] is not None:
if not is_ip_allowed(
@@ -218,17 +221,20 @@ def details(token, name):
return jsonify(details), 200
@app.route("/delete/<token>", methods=["GET"])
@app.route("/delete/<token>/<name>", methods=["GET"])
def delete_file(name, token):
def delete_file(token,name=None):
"""
Delete a file from the system
"""
secret = request.headers.get("Secret", "")
if secret != app.config["ACCESS_TOKEN"]:
return "Error", 401
if name is None:
name = db_get_name(token)[0]
try:
os.remove(os.path.join(app.config["DATAFOLDER"], token, name))
os.rmdir(os.path.join(app.config["DATAFOLDER"], token))
except Exception:
pass
db_delete_file(token, name)