data_list.py
2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# coding=utf-8
#author: 4N
#createtime: 2021/7/19
#email: nheweijun@sina.com
from app.util.component.ApiTemplate import ApiTemplate
import json
from app.util.component.FileProcess import FileProcess
import datetime
from app.modules.service.image.util.ThriftConnect import ThriftConnect
import os
class Api(ApiTemplate):
api_name = "影像数据列表"
def process(self):
# 返回结果
res = {}
try:
data_server = self.para.get("data_server")
path = self.para.get("path")
if data_server.__eq__("本地服务器"):
project_path = (os.path.dirname(os.path.abspath(__file__)))
base_path = os.path.join(project_path, "data")
if path:
base_path = os.path.normpath(path)
data_list: list = []
for f in os.listdir(base_path):
file_path = os.path.normpath(os.path.join(base_path, f))
file_size = FileProcess.get_file_size(file_path)
fctime = datetime.datetime.fromtimestamp(os.path.getctime(file_path)).strftime('%Y-%m-%d %H:%M:%S')
file_info = {"name": f, "path": file_path, "size": file_size, "create_time": fctime}
if file_path.lower().endswith("tiff") or file_path.lower().endswith("tif"):
file_info["type"] = "tif"
data_list.append(file_info)
elif file_path.lower().endswith("img"):
file_info["type"] = "img"
data_list.append(file_info)
elif os.path.isdir(file_path):
file_info["type"] = "dir"
data_list.append(file_info)
data_list_sorted = sorted(data_list, key=lambda x: x["name"])
res["data"] = data_list_sorted
else:
thrift_connect = ThriftConnect(data_server)
info= json.loads(thrift_connect.client.getImageList(path))
thrift_connect.close()
res["data"] = info
res["result"] = True
except Exception as e:
raise e
return res
api_doc = {
"tags": ["影像接口"],
"parameters": [
{"name": "data_server",
"in": "formData",
"type": "string",
"description": "data_server"},
{"name": "path",
"in": "formData",
"type": "string",
"description": "path"}
],
"responses": {
200: {
"schema": {
"properties": {
}
}
}
}
}