mcsmapi 0.1.4__py3-none-any.whl → 0.1.5b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mcsmapi/apis/daemon.py +63 -10
- mcsmapi/apis/file.py +73 -70
- mcsmapi/apis/image.py +13 -13
- mcsmapi/apis/instance.py +53 -53
- mcsmapi/apis/user.py +14 -14
- mcsmapi/models/daemon.py +57 -9
- mcsmapi/models/file.py +129 -9
- mcsmapi/models/image.py +105 -10
- mcsmapi/models/instance.py +116 -17
- mcsmapi/models/overview.py +51 -2
- mcsmapi/models/user.py +39 -5
- {mcsmapi-0.1.4.dist-info → mcsmapi-0.1.5b2.dist-info}/METADATA +5 -1
- mcsmapi-0.1.5b2.dist-info/RECORD +23 -0
- mcsmapi-0.1.4.dist-info/RECORD +0 -23
- {mcsmapi-0.1.4.dist-info → mcsmapi-0.1.5b2.dist-info}/WHEEL +0 -0
- {mcsmapi-0.1.4.dist-info → mcsmapi-0.1.5b2.dist-info}/licenses/LICENSE +0 -0
- {mcsmapi-0.1.4.dist-info → mcsmapi-0.1.5b2.dist-info}/top_level.txt +0 -0
mcsmapi/apis/instance.py
CHANGED
@@ -23,15 +23,15 @@ class Instance:
|
|
23
23
|
根据指定的参数搜索实例信息
|
24
24
|
|
25
25
|
**参数:**
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
- daemonId (str): 守护进程的唯一标识符
|
27
|
+
- page (int): 页码,用于指示返回数据的页数。默认为1,表示返回第一页数据
|
28
|
+
- page_size (int): 每页大小,用于指定每页包含的数据条数。默认为20,表示每页包含20条数据
|
29
|
+
- instance_name (str): 实例的名称。默认为空字符串,表示不进行实例名称过滤
|
30
|
+
- status (str): 实例的状态。默认为空字符串,表示不进行状态过滤
|
31
|
+
- tag (list[str] | None): 实例的标签列表。默认为None,表示不进行标签过滤
|
32
32
|
|
33
33
|
**返回:**
|
34
|
-
|
34
|
+
- InstanceSearchList: 包含搜索结果的模型。该模型包含了符合搜索条件的实例信息列表,以及总数据条数、总页数等分页信息。
|
35
35
|
"""
|
36
36
|
if tag is None:
|
37
37
|
tag = []
|
@@ -54,11 +54,11 @@ class Instance:
|
|
54
54
|
获取指定实例的详细信息
|
55
55
|
|
56
56
|
**参数:**
|
57
|
-
|
58
|
-
|
57
|
+
- daemonId (str): 守护进程的唯一标识符
|
58
|
+
- uuid (str): 实例的唯一标识符
|
59
59
|
|
60
60
|
**返回:**
|
61
|
-
|
61
|
+
- InstanceDetail: 包含实例详细信息的模型。
|
62
62
|
"""
|
63
63
|
result = send(
|
64
64
|
"GET",
|
@@ -72,11 +72,11 @@ class Instance:
|
|
72
72
|
创建一个实例。
|
73
73
|
|
74
74
|
**参数:**
|
75
|
-
|
76
|
-
|
75
|
+
- daemonId (str): 守护进程的唯一标识符,用于关联新创建的实例。
|
76
|
+
- config (dict[str, Any]): 实例的配置信息,以字典形式提供,缺失内容由InstanceConfig模型补全。
|
77
77
|
|
78
78
|
**返回:**
|
79
|
-
|
79
|
+
- InstanceCreateResult: 一个包含新创建实例信息的结果对象,内容由InstanceCreateResult模型定义。
|
80
80
|
"""
|
81
81
|
result = send(
|
82
82
|
"POST",
|
@@ -93,12 +93,12 @@ class Instance:
|
|
93
93
|
**不建议直接使用此函数,建议调用search后在data属性内使用updateConfig方法按需更新**
|
94
94
|
|
95
95
|
**参数:**
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
- daemonId (str): 守护进程的标识符。
|
97
|
+
- uuid (str): 实例的唯一标识符。
|
98
|
+
- config (dict): 新的实例配置,以字典形式提供,缺失内容由InstanceConfig模型补全。
|
99
99
|
|
100
100
|
**返回:**
|
101
|
-
|
101
|
+
- str|bool: 更新成功后返回更新的实例UUID,如果未找到该字段,则默认返回True。
|
102
102
|
"""
|
103
103
|
result = send(
|
104
104
|
"PUT",
|
@@ -115,12 +115,12 @@ class Instance:
|
|
115
115
|
删除实例。
|
116
116
|
|
117
117
|
**参数:**
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
- daemonId (str): 守护进程的标识符。
|
119
|
+
- uuids (list): 要删除的实例UUID列表。
|
120
|
+
- deleteFile (bool, optional): 是否删除关联的文件,默认为False。
|
121
121
|
|
122
122
|
**返回:**
|
123
|
-
|
123
|
+
- list[str]: 删除操作后返回的UUID列表。
|
124
124
|
"""
|
125
125
|
return send(
|
126
126
|
"DELETE",
|
@@ -134,11 +134,11 @@ class Instance:
|
|
134
134
|
启动实例。
|
135
135
|
|
136
136
|
**参数:**
|
137
|
-
|
138
|
-
|
137
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
138
|
+
- uuid (str): 实例的唯一标识符,用于指定需要启动的实例。
|
139
139
|
|
140
140
|
**返回:**
|
141
|
-
|
141
|
+
- str|bool: 返回结果中的 "instanceUuid" 字段值,如果未找到该字段,则默认返回True。
|
142
142
|
"""
|
143
143
|
result = send(
|
144
144
|
"GET",
|
@@ -152,11 +152,11 @@ class Instance:
|
|
152
152
|
关闭实例。
|
153
153
|
|
154
154
|
**参数:**
|
155
|
-
|
156
|
-
|
155
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
156
|
+
- uuid (str): 实例的唯一标识符,用于指定需要关闭的实例。
|
157
157
|
|
158
158
|
**返回:**
|
159
|
-
|
159
|
+
- str|bool: 返回结果中的 "instanceUuid" 字段值,如果未找到该字段,则默认返回True。
|
160
160
|
"""
|
161
161
|
result = send(
|
162
162
|
"GET",
|
@@ -170,11 +170,11 @@ class Instance:
|
|
170
170
|
重启实例。
|
171
171
|
|
172
172
|
**参数:**
|
173
|
-
|
174
|
-
|
173
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
174
|
+
- uuid (str): 实例的唯一标识符,用于指定需要重启的实例。
|
175
175
|
|
176
176
|
**返回:**
|
177
|
-
|
177
|
+
- str|bool: 返回结果中的 "instanceUuid" 字段值,如果未找到该字段,则默认返回True。
|
178
178
|
"""
|
179
179
|
result = send(
|
180
180
|
"GET",
|
@@ -188,11 +188,11 @@ class Instance:
|
|
188
188
|
强制关闭实例。
|
189
189
|
|
190
190
|
**参数:**
|
191
|
-
|
192
|
-
|
191
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
192
|
+
- uuid (str): 实例的唯一标识符,用于指定需要强制关闭的实例。
|
193
193
|
|
194
194
|
**返回:**
|
195
|
-
|
195
|
+
- str|bool: 返回结果中的 "instanceUuid" 字段值,如果未找到该字段,则默认返回True。
|
196
196
|
"""
|
197
197
|
result = send(
|
198
198
|
"GET",
|
@@ -206,11 +206,11 @@ class Instance:
|
|
206
206
|
对多个实例进行批量操作。
|
207
207
|
|
208
208
|
**参数:**
|
209
|
-
|
210
|
-
|
209
|
+
- instances (list[dict[str,str]]): 包含多个实例信息的列表,每个实例信息为一个字典,包含 "uuid" 和 "daemonId" 字段。
|
210
|
+
- operation (str): 要执行的操作,可以是 "start", "stop", "restart", 或 "kill"。
|
211
211
|
|
212
212
|
**返回:**
|
213
|
-
|
213
|
+
- list[dict[str,str]]:包含每个实例操作结果的列表,每个结果为一个字典,包含 "uuid" 和 "result" 字段。
|
214
214
|
"""
|
215
215
|
if operation in {"start", "stop", "restart", "kill"}:
|
216
216
|
return send("POST", f"{ApiPool.INSTANCE}/multi_{operation}", data=instances)
|
@@ -222,11 +222,11 @@ class Instance:
|
|
222
222
|
升级实例。
|
223
223
|
|
224
224
|
**参数:**
|
225
|
-
|
226
|
-
|
225
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
226
|
+
- uuid (str): 实例的唯一标识符,用于指定需要升级的实例。
|
227
227
|
|
228
228
|
**返回:**
|
229
|
-
|
229
|
+
- bool: 返回操作结果,成功时返回True。
|
230
230
|
"""
|
231
231
|
return send(
|
232
232
|
"GET",
|
@@ -239,12 +239,12 @@ class Instance:
|
|
239
239
|
向实例发送命令。
|
240
240
|
|
241
241
|
**参数:**
|
242
|
-
|
243
|
-
|
244
|
-
|
242
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
243
|
+
- uuid (str): 实例的唯一标识符,用于指定需要发送命令的实例。
|
244
|
+
- command (str): 要发送的命令。
|
245
245
|
|
246
246
|
**返回:**
|
247
|
-
|
247
|
+
- str|bool: 返回结果中的 "instanceUuid" 字段值,如果未找到该字段,则默认返回True。
|
248
248
|
"""
|
249
249
|
result = send(
|
250
250
|
"GET",
|
@@ -258,12 +258,12 @@ class Instance:
|
|
258
258
|
获取实例输出。
|
259
259
|
|
260
260
|
**参数:**
|
261
|
-
|
262
|
-
|
263
|
-
|
261
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
262
|
+
- uuid (str): 实例的唯一标识符,用于指定需要获取输出的实例。
|
263
|
+
- size (int, optional): 获取的日志大小: 1KB ~ 2048KB,如果未设置,则返回所有日志
|
264
264
|
|
265
265
|
**返回:**
|
266
|
-
|
266
|
+
- str: 返回结果中的 "instanceUuid" 字段值,如果未找到该字段,则默认返回True。
|
267
267
|
"""
|
268
268
|
return send(
|
269
269
|
"GET",
|
@@ -283,14 +283,14 @@ class Instance:
|
|
283
283
|
重装实例。
|
284
284
|
|
285
285
|
**参数:**
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
286
|
+
- daemonId (str): 守护进程的ID,用于标识特定的守护进程。
|
287
|
+
- uuid (str): 实例的唯一标识符。
|
288
|
+
- targetUrl (str): 重装文件的目标URL。
|
289
|
+
- title (str): 重装文件的标题。
|
290
|
+
- description (str, optional): 重装文件的描述,默认为空字符串。
|
291
291
|
|
292
292
|
**返回:**
|
293
|
-
|
293
|
+
- bool: 返回操作结果,成功时返回True。
|
294
294
|
"""
|
295
295
|
return send(
|
296
296
|
"POST",
|
mcsmapi/apis/user.py
CHANGED
@@ -11,14 +11,14 @@ class User:
|
|
11
11
|
"""根据用户名和角色搜索用户信息
|
12
12
|
|
13
13
|
**参数:**
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
- username (str): 要搜索的用户名。默认为空字符串,表示不进行用户名过滤
|
15
|
+
- page (int): 页码,用于指示返回数据的页数。默认为1,表示返回第一页数据
|
16
|
+
- page_size (int): 每页大小,用于指定每页包含的数据条数。默认为20,表示每页包含20条数据
|
17
|
+
- role (str): 用户权限。默认为空字符串,表示不进行权限过滤
|
18
18
|
可用的值为 1=用户, 10=管理员, -1=被封禁的用户
|
19
19
|
|
20
20
|
**返回:**
|
21
|
-
|
21
|
+
- SearchUserModel: 包含搜索结果的模型。该模型包含了符合搜索条件的用户信息列表,以及总数据条数、总页数等分页信息。
|
22
22
|
"""
|
23
23
|
result = send(
|
24
24
|
"GET",
|
@@ -37,12 +37,12 @@ class User:
|
|
37
37
|
创建新用户的方法
|
38
38
|
|
39
39
|
**参数:**
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
- username (str): 用户名,字符串类型
|
41
|
+
- password (str): 密码,字符串类型
|
42
|
+
- permission (int): 权限等级,整数类型,默认值为1
|
43
43
|
|
44
44
|
**返回:**
|
45
|
-
|
45
|
+
- str|bool: 创建成功后返回用户的UUID,如果未找到该字段,则默认返回True。
|
46
46
|
"""
|
47
47
|
return send(
|
48
48
|
"POST",
|
@@ -57,11 +57,11 @@ class User:
|
|
57
57
|
**不建议直接使用此函数,建议调用search后使用update方法按需更新**
|
58
58
|
|
59
59
|
**参数:**
|
60
|
-
|
61
|
-
|
60
|
+
- uuid (str): 用户的唯一标识符UUID
|
61
|
+
- config (dict[str, Any]): 新的用户信息,以字典形式提供,缺失内容由UserConfig模型补全。
|
62
62
|
|
63
63
|
**返回:**
|
64
|
-
|
64
|
+
- bool: 成功时返回True
|
65
65
|
"""
|
66
66
|
return send(
|
67
67
|
"PUT",
|
@@ -74,9 +74,9 @@ class User:
|
|
74
74
|
删除用户的方法
|
75
75
|
|
76
76
|
**参数:**
|
77
|
-
|
77
|
+
- uuids (list[str]): 包含要删除的用户UUID的列表。
|
78
78
|
|
79
79
|
**返回:**
|
80
|
-
|
80
|
+
- bool: 成功时返回True
|
81
81
|
"""
|
82
82
|
return send("DELETE", ApiPool.AUTH, data=uuids)
|
mcsmapi/models/daemon.py
CHANGED
@@ -4,48 +4,89 @@ from mcsmapi.models.instance import InstanceCreateResult
|
|
4
4
|
|
5
5
|
|
6
6
|
class CpuMemChart(BaseModel):
|
7
|
+
"""节点资源使用率信息"""
|
8
|
+
|
9
|
+
"""cpu使用率"""
|
7
10
|
cpu: float = 0
|
11
|
+
"""内存使用率"""
|
8
12
|
mem: float = 0
|
9
13
|
|
10
14
|
|
11
15
|
class ProcessInfo(BaseModel):
|
16
|
+
"""节点进程详细信息"""
|
17
|
+
|
18
|
+
"""远程节点使用的cpu资源(单位: byte)"""
|
12
19
|
cpu: int = 0
|
20
|
+
"""远程节点使用的内存资源(单位: byte)"""
|
13
21
|
memory: int = 0
|
22
|
+
"""远程节点的工作路径"""
|
14
23
|
cwd: str = ""
|
15
24
|
|
16
25
|
|
17
26
|
class InstanceInfo(BaseModel):
|
27
|
+
"""实例统计信息"""
|
28
|
+
|
29
|
+
"""运行中实例数量"""
|
18
30
|
running: int = 0
|
31
|
+
"""全部实例数量"""
|
19
32
|
total: int = 0
|
20
33
|
|
21
34
|
|
22
35
|
class SystemInfo(BaseModel):
|
36
|
+
"""节点系统信息"""
|
37
|
+
|
38
|
+
"""系统类型"""
|
23
39
|
type: str = ""
|
40
|
+
"""主机名"""
|
24
41
|
hostname: str = ""
|
42
|
+
"""平台架构"""
|
25
43
|
platform: str = ""
|
44
|
+
"""系统版本"""
|
26
45
|
release: str = ""
|
46
|
+
"""系统运行时间(单位: sec)"""
|
27
47
|
uptime: float = 0
|
48
|
+
"""远程节点运行路径"""
|
28
49
|
cwd: str = ""
|
50
|
+
"""系统负载平均值(仅适用于 Linux 和 macOS),表示过去 **1 分钟、5 分钟、15 分钟** 内的 CPU 负载情况"""
|
29
51
|
loadavg: List[float] = []
|
52
|
+
"""可用内存(单位: byte)"""
|
30
53
|
freemem: int = 0
|
54
|
+
"""cpu使用率"""
|
31
55
|
cpuUsage: float = 0
|
56
|
+
"""内存使用率"""
|
32
57
|
memUsage: float = 0
|
58
|
+
"""内存总量(单位: byte)"""
|
33
59
|
totalmem: int = 0
|
60
|
+
"""未知,在MCSM代码中始终为0"""
|
34
61
|
processCpu: int = 0
|
62
|
+
"""未知,在MCSM代码中始终为0"""
|
35
63
|
processMem: int = 0
|
36
64
|
|
37
65
|
|
38
66
|
class DaemonModel(BaseModel):
|
67
|
+
"""节点详细信息"""
|
68
|
+
|
69
|
+
"""远程节点版本"""
|
39
70
|
version: str = ""
|
71
|
+
"""远程节点的基本信息"""
|
40
72
|
process: ProcessInfo = ProcessInfo()
|
73
|
+
"""远程节点实例基本信息"""
|
41
74
|
instance: InstanceInfo = InstanceInfo()
|
75
|
+
"""远程节点系统信息"""
|
42
76
|
system: SystemInfo = SystemInfo()
|
77
|
+
"""cpu和内存使用趋势"""
|
43
78
|
cpuMemChart: List[CpuMemChart] = []
|
79
|
+
"""远程节点的uuid"""
|
44
80
|
uuid: str = ""
|
81
|
+
"""远程节点的ip"""
|
45
82
|
ip: str = ""
|
83
|
+
"""远程节点的端口"""
|
46
84
|
port: int = 24444
|
85
|
+
"""远程节点的路径前缀"""
|
47
86
|
prefix: str = ""
|
87
|
+
"""远程节点的可用状态"""
|
48
88
|
available: bool = False
|
89
|
+
"""远程节点的备注"""
|
49
90
|
remarks: str = ""
|
50
91
|
|
51
92
|
def delete(self) -> bool:
|
@@ -53,7 +94,7 @@ class DaemonModel(BaseModel):
|
|
53
94
|
删除该节点。
|
54
95
|
|
55
96
|
返回:
|
56
|
-
|
97
|
+
- bool: 删除成功后返回True
|
57
98
|
"""
|
58
99
|
from mcsmapi.apis.daemon import Daemon
|
59
100
|
|
@@ -64,7 +105,7 @@ class DaemonModel(BaseModel):
|
|
64
105
|
链接该节点。
|
65
106
|
|
66
107
|
返回:
|
67
|
-
|
108
|
+
- bool: 链接成功后返回True
|
68
109
|
"""
|
69
110
|
from mcsmapi.apis.daemon import Daemon
|
70
111
|
|
@@ -75,10 +116,10 @@ class DaemonModel(BaseModel):
|
|
75
116
|
更新该节点的配置。
|
76
117
|
|
77
118
|
参数:
|
78
|
-
|
119
|
+
- config (dict[str, Any]): 节点的配置信息,以字典形式提供,缺失内容使用原节点配置填充。
|
79
120
|
|
80
121
|
返回:
|
81
|
-
|
122
|
+
- bool: 更新成功后返回True
|
82
123
|
"""
|
83
124
|
from mcsmapi.apis.daemon import Daemon
|
84
125
|
|
@@ -100,10 +141,10 @@ class DaemonModel(BaseModel):
|
|
100
141
|
在当前节点创建一个实例。
|
101
142
|
|
102
143
|
参数:
|
103
|
-
|
144
|
+
- config (dict[str, Any]): 实例的配置信息,以字典形式提供,缺失内容由InstanceConfig模型补全。
|
104
145
|
|
105
146
|
返回:
|
106
|
-
|
147
|
+
- InstanceCreateResult: 一个包含新创建实例信息的结果对象,内容由InstanceCreateResult模型定义。
|
107
148
|
"""
|
108
149
|
from mcsmapi.apis.instance import Instance
|
109
150
|
from .instance import InstanceConfig
|
@@ -115,11 +156,11 @@ class DaemonModel(BaseModel):
|
|
115
156
|
删除当前节点的一个或多个实例。
|
116
157
|
|
117
158
|
参数:
|
118
|
-
|
119
|
-
|
159
|
+
- uuids (list[str]): 要删除的实例UUID列表。
|
160
|
+
- deleteFile (bool, optional): 是否删除关联的文件,默认为False。
|
120
161
|
|
121
162
|
返回:
|
122
|
-
|
163
|
+
- list[str]: 删除操作后返回的UUID列表。
|
123
164
|
"""
|
124
165
|
from mcsmapi.apis.instance import Instance
|
125
166
|
|
@@ -127,8 +168,15 @@ class DaemonModel(BaseModel):
|
|
127
168
|
|
128
169
|
|
129
170
|
class DaemonConfig(BaseModel):
|
171
|
+
"""节点配置信息"""
|
172
|
+
|
173
|
+
"""远程节点的ip"""
|
130
174
|
ip: str = "localhost"
|
175
|
+
"""远程节点的端口"""
|
131
176
|
port: int = 24444
|
177
|
+
"""远程节点的路径前缀"""
|
132
178
|
prefix: str = ""
|
179
|
+
"""远程节点的备注"""
|
133
180
|
remarks: str = "New Daemon"
|
181
|
+
"""远程节点的可用状态"""
|
134
182
|
available: bool = True
|
mcsmapi/models/file.py
CHANGED
@@ -4,24 +4,36 @@ import os
|
|
4
4
|
|
5
5
|
|
6
6
|
class FileItem(BaseModel):
|
7
|
-
|
7
|
+
"""文件信息"""
|
8
|
+
|
9
|
+
"""文件名称"""
|
10
|
+
name: str = ""
|
11
|
+
"""文件大小(单位: byte)"""
|
8
12
|
size: int = 0 # byte
|
13
|
+
"""文件修改时间"""
|
9
14
|
time: str = ""
|
15
|
+
"""文件操作权限(仅适用于Linux)"""
|
10
16
|
mode: int = 777 # Linux file permission
|
17
|
+
"""文件类型,`0`为文件夹,`1`为文件"""
|
11
18
|
type: int = 0 # 0 = Folder, 1 = File
|
19
|
+
"""远程节点uuid"""
|
12
20
|
daemonId: str = ""
|
21
|
+
"""实例的uiid"""
|
13
22
|
uuid: str = ""
|
23
|
+
"""文件所在路径"""
|
14
24
|
target: str = ""
|
25
|
+
"""当前文件列表过滤条件"""
|
26
|
+
file_name: str = ""
|
15
27
|
|
16
28
|
def rename(self, newName: str) -> bool:
|
17
29
|
"""
|
18
30
|
重命名该文件或文件夹。
|
19
31
|
|
20
32
|
**参数:**
|
21
|
-
|
33
|
+
- new_name (str): 源文件或文件夹的新名字。
|
22
34
|
|
23
35
|
**返回:**
|
24
|
-
|
36
|
+
- bool: 重命名成功后返回True。
|
25
37
|
"""
|
26
38
|
from mcsmapi.apis.file import File
|
27
39
|
|
@@ -34,7 +46,7 @@ class FileItem(BaseModel):
|
|
34
46
|
删除该文件或文件夹。
|
35
47
|
|
36
48
|
**返回:**
|
37
|
-
|
49
|
+
- bool: 重命名成功后返回True。
|
38
50
|
"""
|
39
51
|
from mcsmapi.apis.file import File
|
40
52
|
|
@@ -54,10 +66,10 @@ class FileItem(BaseModel):
|
|
54
66
|
移动该文件或文件夹到目标路径。
|
55
67
|
|
56
68
|
**参数:**
|
57
|
-
|
69
|
+
- target (str): 目标文件或文件夹的路径。
|
58
70
|
|
59
71
|
**返回:**
|
60
|
-
|
72
|
+
- bool: 移动成功后返回True。
|
61
73
|
"""
|
62
74
|
from mcsmapi.apis.file import File
|
63
75
|
|
@@ -65,17 +77,45 @@ class FileItem(BaseModel):
|
|
65
77
|
self.daemonId, self.uuid, os.path.join(self.target, self.name), target
|
66
78
|
)
|
67
79
|
|
80
|
+
def content(self):
|
81
|
+
"""
|
82
|
+
获取文件内容。
|
83
|
+
**返回:**
|
84
|
+
- str | bytes: 文件内容。
|
85
|
+
"""
|
86
|
+
from mcsmapi.apis.file import File
|
87
|
+
|
88
|
+
return File().content(
|
89
|
+
self.daemonId, self.uuid, os.path.join(self.target, self.name)
|
90
|
+
)
|
91
|
+
|
92
|
+
def zip(self, targets: list[str]) -> bool:
|
93
|
+
"""
|
94
|
+
压缩多个文件或文件夹到指定位置。
|
95
|
+
|
96
|
+
**参数:**
|
97
|
+
- targets (list): 要压缩到的目标文件的路径。
|
98
|
+
|
99
|
+
**返回:**
|
100
|
+
- bool: 压缩成功后返回True。
|
101
|
+
"""
|
102
|
+
from mcsmapi.apis.file import File
|
103
|
+
|
104
|
+
return File().zip(
|
105
|
+
self.daemonId, self.uuid, os.path.join(self.target, self.name), targets
|
106
|
+
)
|
107
|
+
|
68
108
|
def unzip(self, target: str, code: str = "utf-8") -> bool:
|
69
109
|
"""
|
70
110
|
解压缩该 zip 文件到目标位置。
|
71
111
|
|
72
112
|
**参数:**
|
73
|
-
|
74
|
-
|
113
|
+
- target (str): 解压到的目标路径。
|
114
|
+
- code (str, optional): 压缩文件的编码方式,默认为"utf-8"。
|
75
115
|
可选值: utf-8, gbk, big5
|
76
116
|
|
77
117
|
**返回:**
|
78
|
-
|
118
|
+
- bool: 解压成功后返回True。
|
79
119
|
"""
|
80
120
|
from mcsmapi.apis.file import File
|
81
121
|
|
@@ -83,15 +123,51 @@ class FileItem(BaseModel):
|
|
83
123
|
self.daemonId, self.uuid, os.path.join(self.target, self.name), target, code
|
84
124
|
)
|
85
125
|
|
126
|
+
def update(self, text: str) -> bool:
|
127
|
+
"""
|
128
|
+
更新该文件内容。
|
129
|
+
**参数:**
|
130
|
+
- text (str): 文件内容。
|
131
|
+
**返回:**
|
132
|
+
- bool: 更新成功后返回True。
|
133
|
+
"""
|
134
|
+
from mcsmapi.apis.file import File
|
135
|
+
|
136
|
+
return File().update(
|
137
|
+
self.daemonId, self.uuid, os.path.join(self.target, self.name), text
|
138
|
+
)
|
139
|
+
|
140
|
+
def download(self) -> str:
|
141
|
+
"""
|
142
|
+
下载该文件。
|
143
|
+
**返回:**
|
144
|
+
- str: 文件下载的URL。
|
145
|
+
"""
|
146
|
+
from mcsmapi.apis.file import File
|
147
|
+
|
148
|
+
return File().download(
|
149
|
+
self.daemonId, self.uuid, os.path.join(self.target, self.name)
|
150
|
+
)
|
151
|
+
|
86
152
|
|
87
153
|
class FileList(BaseModel):
|
154
|
+
"""文件列表"""
|
155
|
+
|
156
|
+
"""文件信息列表"""
|
88
157
|
items: List[FileItem]
|
158
|
+
"""当前页数"""
|
89
159
|
page: int = 0
|
160
|
+
"""文件列表单页大小"""
|
90
161
|
pageSize: int = 100
|
162
|
+
"""总页数"""
|
91
163
|
total: int = 0
|
164
|
+
"""当前路径在远程节点的绝对路径"""
|
92
165
|
absolutePath: str = "\\"
|
166
|
+
"""远程节点uuid"""
|
93
167
|
daemonId: str = ""
|
168
|
+
"""实例uuid"""
|
94
169
|
uuid: str = ""
|
170
|
+
"""文件(名称或目录)路径"""
|
95
171
|
target: str = ""
|
96
172
|
|
97
173
|
def __init__(self, **data: str):
|
@@ -101,8 +177,52 @@ class FileList(BaseModel):
|
|
101
177
|
item.uuid = self.uuid
|
102
178
|
item.target = self.target
|
103
179
|
|
180
|
+
async def upload(self, file: bytes, upload_dir: str) -> bool:
|
181
|
+
"""
|
182
|
+
上传文件到实例。
|
183
|
+
|
184
|
+
**参数:**
|
185
|
+
- file (bytes): 要上传的文件内容。
|
186
|
+
- upload_dir (str): 上传文件的目标目录(包含文件名)。
|
187
|
+
|
188
|
+
**返回:**
|
189
|
+
- bool: 返回操作结果,成功时返回True。
|
190
|
+
"""
|
191
|
+
from mcsmapi.apis.file import File
|
192
|
+
|
193
|
+
return await File().upload(self.daemonId, self.uuid, file, upload_dir)
|
194
|
+
|
195
|
+
def createFile(self, target: str) -> bool:
|
196
|
+
"""
|
197
|
+
创建文件。
|
198
|
+
|
199
|
+
**参数:**
|
200
|
+
- target (str): 目标文件的路径,包含文件名。
|
201
|
+
|
202
|
+
**返回:**
|
203
|
+
- bool: 创建成功后返回True。
|
204
|
+
"""
|
205
|
+
from mcsmapi.apis.file import File
|
206
|
+
|
207
|
+
return File().createFile(self.daemonId, self.uuid, target)
|
208
|
+
|
209
|
+
def createFloder(self, target: str) -> bool:
|
210
|
+
"""
|
211
|
+
创建文件夹
|
212
|
+
|
213
|
+
**参数:**
|
214
|
+
- target (str): 目标文件夹的路径。
|
215
|
+
|
216
|
+
**返回:**
|
217
|
+
- bool: 创建成功后返回True。
|
218
|
+
"""
|
219
|
+
from mcsmapi.apis.file import File
|
220
|
+
|
221
|
+
return File().createFloder(self.daemonId, self.uuid, target)
|
104
222
|
|
105
223
|
|
106
224
|
class CommonConfig(BaseModel):
|
225
|
+
"""文件下载密码"""
|
107
226
|
password: str = ""
|
227
|
+
"""文件下载地址"""
|
108
228
|
addr: str = ""
|