You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.6 KiB
Python

from flask import Flask, send_from_directory, current_app, request, jsonify
from werkzeug.utils import secure_filename
import os
import glob
app = Flask(__name__)
@app.route('/health_check', methods=['GET'])
def health_check():
return "OK", 200
@app.route('/<string:path>', methods=['GET'])
def download(path):
filename = secure_filename(request.args.get("filename"))
uploads = os.path.join(current_app.root_path, path) #file_upload ????
return send_from_directory(directory=uploads, path=filename)
@app.route('/file_list/<string:path>', methods=['GET'])
def file_list(path):
file_list = []
for files in glob.glob(current_app.root_path+'/'+path + '/*'):
file_list.append(files.split('/')[-1])
return jsonify(file_list)
@app.route('/upload/<string:path>', methods=['POST'])
def upload(path):
key = request.files
file = request.files.get(next(iter(key)))
filename = secure_filename(file.filename)
uploads = os.path.join(current_app.root_path, path)
if not os.path.exists(uploads):
os.mkdir(uploads)
file.save(uploads+"/"+filename)
return jsonify({"filename": filename})
@app.route('/delete', methods=['GET'])
def delete():
filename = request.args.get("filename")
filename = secure_filename(filename)
path = "secrets"
delete_path = os.path.join(current_app.root_path, path)
if os.path.exists(delete_path+"/"+filename):
os.remove(delete_path+"/"+filename)
return jsonify({"result": "ok"})
else:
return jsonify({"result": "NOT OK"})
if __name__ == '__main__':
app.run(debug=False, host="0.0.0.0", port=13379)