file.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import json
  2. import os.path
  3. import traceback
  4. from flask import request, jsonify
  5. from flask_restx import Resource, Namespace, reqparse
  6. from app.defines import StatesCode
  7. from app.utils.utils import dir_and_file_tree, get_directory_tree
  8. from config import Config
  9. ns = Namespace('file', description='文件管理 API接口')
  10. config = Config()
  11. files_parser = reqparse.RequestParser(bundle_errors=True)
  12. files_parser.add_argument(name='type', type=str, location='args', required=False, help='数据类型 :tif、3Dtiles')
  13. @ns.route('/get_files')
  14. class GetFilesApi(Resource):
  15. @ns.doc(id='get_files', description='获取原始数据目录文件列表')
  16. @ns.expect(files_parser)
  17. def get(self):
  18. try:
  19. type = request.args.get('type')
  20. if type == 'tif':
  21. path = config.common.IMAGE_PATH
  22. ext = '.tif'
  23. elif type == '3Dtiles':
  24. path = config.common.TILESET_PATH
  25. ext = 'tileset.json'
  26. else:
  27. return jsonify(code=StatesCode.PARA_ERROR, message='数据类型错误')
  28. structure = dir_and_file_tree(path, ext, [])
  29. return jsonify(code=StatesCode.SUCCESS, message='获取成功', data=structure)
  30. except Exception as e:
  31. traceback.print_exc()
  32. return {'code': StatesCode.UNKNOWN_ERROR, 'message': str(e)}