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
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)
|