Skip to content

Commit 0b51aac

Browse files
committed
feat(instance): 实例对象支持快速获取文件列表
- 在 InstanceDetail 模型中添加 files 方法,用于获取实例的文件列表 - 方法支持分页和路径过滤功能 - 更新版本号至 0.1.5.b1
1 parent bc2373f commit 0b51aac

File tree

11 files changed

+256
-192
lines changed

11 files changed

+256
-192
lines changed

example/instance.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from mcsmapi import MCSMAPI
2+
3+
api = MCSMAPI("http://localhost:23333")
4+
5+
api.login("admin", "547cABC9bf88@")
6+
7+
instance_object = api.instance()
8+
9+
instance_list = instance_object.search("xxx")
10+
11+
instance = instance_list.data[0]
12+
13+
# start
14+
instance.start()
15+
16+
# stop
17+
instance.stop()
18+
19+
# restart
20+
instance.restart()
21+
22+
# kill
23+
instance.kill()
24+
25+
# show files
26+
file_list = instance.files("", 1, 20)
27+
28+
# show total files
29+
file_list.total
30+
31+
# show file list
32+
fs = file_list.items
33+
34+
f = fs[0]
35+
36+
# rename file
37+
f.rename("new_name")
38+
39+
# copy file
40+
f.copy("new_path")
41+
# move file
42+
f.move("new_path")
43+
44+
45+
# delete file
46+
f.delete()
47+

mcsmapi/apis/daemon.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ def add(self, config: dict[str, Any]) -> str:
1010
新增一个节点。
1111
1212
参数:
13-
<br> - config (dict): 节点的配置信息,以字典形式提供,缺失内容由DaemonConfig模型补全。
13+
- config (dict): 节点的配置信息,以字典形式提供,缺失内容由DaemonConfig模型补全。
1414
1515
返回:
16-
<br> - str: 新增节点的ID
16+
- str: 新增节点的ID
1717
"""
1818
return send(
1919
"POST",
@@ -26,10 +26,10 @@ def delete(self, daemonId: str) -> bool:
2626
删除一个节点。
2727
2828
参数:
29-
<br> - daemonId (str): 节点的唯一标识符。
29+
- daemonId (str): 节点的唯一标识符。
3030
3131
返回:
32-
<br> - bool: 删除成功后返回True
32+
- bool: 删除成功后返回True
3333
"""
3434
return send(
3535
"DELETE", f"{ApiPool.SERVICE}/remote_service", params={"uuid": daemonId}
@@ -40,10 +40,10 @@ def link(self, daemonId: str) -> bool:
4040
连接一个节点。
4141
4242
参数:
43-
<br> - daemonId (str): 节点的唯一标识符。
43+
- daemonId (str): 节点的唯一标识符。
4444
4545
返回:
46-
<br> - bool: 连接成功后返回True
46+
- bool: 连接成功后返回True
4747
"""
4848
return send(
4949
"GET", f"{ApiPool.SERVICE}/link_remote_service", params={"uuid": daemonId}
@@ -56,11 +56,11 @@ def update(self, daemonId: str, config: dict[str, Any]) -> bool:
5656
**不建议直接使用此函数,建议调用overview()后在remote属性内使用updateConfig方法按需更新**
5757
5858
参数:
59-
<br> - daemonId (str): 节点的唯一标识符。
60-
<br> - config (dict): 节点的配置信息,以字典形式提供,缺失内容由DaemonConfig模型补全。
59+
- daemonId (str): 节点的唯一标识符。
60+
- config (dict): 节点的配置信息,以字典形式提供,缺失内容由DaemonConfig模型补全。
6161
6262
返回:
63-
<br> - bool: 更新成功后返回True
63+
- bool: 更新成功后返回True
6464
"""
6565
return send(
6666
"PUT",

mcsmapi/apis/file.py

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ def show(
1818
获取文件列表
1919
2020
**参数:**
21-
<br> - daemonId (str): 守护进程的唯一标识符。
22-
<br> - uuid (str): 文件实例的唯一标识符。
23-
<br> - target (str, 可选): 用于文件过滤的目标路径。默认为空字符串,表示不按路径过滤。
24-
<br> - page (int, 可选): 指定分页的页码。默认为0。
25-
<br> - page_size (int, 可选): 指定每页的项目数量。默认为100。
21+
- daemonId (str): 守护进程的唯一标识符。
22+
- uuid (str): 文件实例的唯一标识符。
23+
- target (str, 可选): 用于文件过滤的目标路径。默认为空字符串,表示不按路径过滤。
24+
- page (int, 可选): 指定分页的页码。默认为0。
25+
- page_size (int, 可选): 指定每页的文件数量。默认为100。
2626
2727
**返回:**
28-
<br> - FileList: 包含文件列表信息和分页详情的FileList模型。
28+
- FileList: 包含文件列表信息和分页详情的FileList模型。
2929
"""
3030
result = send(
3131
"GET",
@@ -45,12 +45,12 @@ def content(self, daemonId: str, uuid: str, target: str) -> str | bytes:
4545
获取文件内容
4646
4747
**参数:**
48-
<br> - daemonId (str): 守护进程的唯一标识符。
49-
<br> - uuid (str): 文件实例的唯一标识符。
50-
<br> - target (str): 文件的目标路径。
48+
- daemonId (str): 守护进程的唯一标识符。
49+
- uuid (str): 文件实例的唯一标识符。
50+
- target (str): 文件的目标路径。
5151
5252
**返回:**
53-
<br> - str: 文件的内容信息。
53+
- str: 文件的内容信息。
5454
"""
5555
return send(
5656
"PUT",
@@ -64,13 +64,13 @@ def update(self, daemonId: str, uuid: str, target: str, text: str) -> bool:
6464
更新文件内容
6565
6666
**参数:**
67-
<br> - daemonId (str): 守护进程的唯一标识符。
68-
<br> - uuid (str): 文件实例的唯一标识符。
69-
<br> - target (str): 文件的目标路径。
70-
<br> - text (str): 新的文件内容。
67+
- daemonId (str): 守护进程的唯一标识符。
68+
- uuid (str): 文件实例的唯一标识符。
69+
- target (str): 文件的目标路径。
70+
- text (str): 新的文件内容。
7171
7272
**返回:**
73-
<br> - bool: 更新成功后返回True。
73+
- bool: 更新成功后返回True。
7474
"""
7575
return send(
7676
"PUT",
@@ -84,12 +84,12 @@ def download(self, daemonId: str, uuid: str, file_name: str) -> str:
8484
下载文件
8585
8686
**参数:**
87-
<br> - daemonId (str): 守护进程的唯一标识符。
88-
<br> - uuid (str): 文件实例的唯一标识符。
89-
<br> - file_name (str): 要下载的文件名。路径+名字, 示例: /backup/world.zip
87+
- daemonId (str): 守护进程的唯一标识符。
88+
- uuid (str): 文件实例的唯一标识符。
89+
- file_name (str): 要下载的文件名。路径+名字, 示例: /backup/world.zip
9090
9191
**返回:**
92-
<br> - str: 文件下载URL。
92+
- str: 文件下载URL。
9393
"""
9494

9595
result = send(
@@ -109,13 +109,13 @@ async def upload(
109109
上传文件
110110
111111
**参数:**
112-
<br> - daemonId (str): 守护进程的唯一标识符。
113-
<br> - uuid (str): 文件实例的唯一标识符。
114-
<br> - file (bytes): 要上传的文件内容。
115-
<br> - upload_dir (str): 文件上传到的目标路径。
112+
- daemonId (str): 守护进程的唯一标识符。
113+
- uuid (str): 文件实例的唯一标识符。
114+
- file (bytes): 要上传的文件内容。
115+
- upload_dir (str): 文件上传到的目标路径。
116116
117117
**返回:**
118-
<br> - bool: 上传成功后返回True。
118+
- bool: 上传成功后返回True。
119119
"""
120120
result = send(
121121
"POST",
@@ -134,12 +134,12 @@ def copy(self, daemonId: str, uuid: str, copy_map: dict[str, str]) -> bool:
134134
复制多个文件夹或文件到指定位置。
135135
136136
**参数:**
137-
<br> - daemonId (str): 守护进程的唯一标识符。
138-
<br> - uuid (str): 文件实例的唯一标识符。
139-
<br> - copy_map (dict): 复制映射,格式为 {源路径: 目标路径}
137+
- daemonId (str): 守护进程的唯一标识符。
138+
- uuid (str): 文件实例的唯一标识符。
139+
- copy_map (dict): 复制映射,格式为 {源路径: 目标路径}
140140
141141
**返回:**
142-
<br> - bool: 上传成功后返回True。
142+
- bool: 上传成功后返回True。
143143
"""
144144
targets = [[source, target] for source, target in copy_map.items()]
145145
return send(
@@ -154,13 +154,13 @@ def copyOne(self, daemonId: str, uuid: str, source: str, target: str) -> bool:
154154
复制单个文件或文件夹到指定位置。
155155
156156
**参数:**
157-
<br> - daemonId (str): 守护进程的唯一标识符。
158-
<br> - uuid (str): 实例的唯一标识符。
159-
<br> - source (str): 源文件或文件夹的路径。
160-
<br> - target (str): 目标文件或文件夹的路径。
157+
- daemonId (str): 守护进程的唯一标识符。
158+
- uuid (str): 实例的唯一标识符。
159+
- source (str): 源文件或文件夹的路径。
160+
- target (str): 目标文件或文件夹的路径。
161161
162162
**返回:**
163-
<br> - bool: 移动成功后返回True。
163+
- bool: 移动成功后返回True。
164164
"""
165165
return self.copy(daemonId, uuid, {source: target})
166166

@@ -169,12 +169,12 @@ def move(self, daemonId: str, uuid: str, copy_map: dict[str, str]) -> bool:
169169
移动多个文件或文件夹到指定位置。
170170
171171
参数:
172-
<br> - daemonId (str): 守护进程的唯一标识符。
173-
<br> - uuid (str): 实例的唯一标识符。
174-
<br> - copy_map (dict): 移动映射,格式为 {源路径: 目标路径}
172+
- daemonId (str): 守护进程的唯一标识符。
173+
- uuid (str): 实例的唯一标识符。
174+
- copy_map (dict): 移动映射,格式为 {源路径: 目标路径}
175175
176176
返回:
177-
<br> - bool: 移动成功后返回True。
177+
- bool: 移动成功后返回True。
178178
"""
179179
targets = [[source, target] for source, target in copy_map.items()]
180180
return send(
@@ -189,13 +189,13 @@ def moveOne(self, daemonId: str, uuid: str, source: str, target: str) -> bool:
189189
从源路径移动单个文件或文件夹到目标路径。
190190
191191
参数:
192-
<br> - daemonId (str): 守护进程的唯一标识符。
193-
<br> - uuid (str): 实例的唯一标识符。
194-
<br> - source (str): 源文件或文件夹的路径。
195-
<br> - target (str): 目标文件或文件夹的路径。
192+
- daemonId (str): 守护进程的唯一标识符。
193+
- uuid (str): 实例的唯一标识符。
194+
- source (str): 源文件或文件夹的路径。
195+
- target (str): 目标文件或文件夹的路径。
196196
197197
返回:
198-
<br> - bool: 移动成功后返回True。
198+
- bool: 移动成功后返回True。
199199
"""
200200
return self.move(daemonId, uuid, {source: target})
201201

@@ -204,13 +204,13 @@ def rename(self, daemonId: str, uuid: str, source: str, new_name: str) -> bool:
204204
重命名单个文件或文件夹。
205205
206206
**参数:**
207-
<br> - daemonId (str): 守护进程的唯一标识符。
208-
<br> - uuid (str): 实例的唯一标识符。
209-
<br> - source (str): 源文件或文件夹的路径。
210-
<br> - new_name (str): 源文件或文件夹的新名字。
207+
- daemonId (str): 守护进程的唯一标识符。
208+
- uuid (str): 实例的唯一标识符。
209+
- source (str): 源文件或文件夹的路径。
210+
- new_name (str): 源文件或文件夹的新名字。
211211
212212
**返回:**
213-
<br> - bool: 重命名成功后返回True。
213+
- bool: 重命名成功后返回True。
214214
"""
215215
directory = os.path.dirname(source)
216216
target = os.path.join(directory, new_name)
@@ -221,13 +221,13 @@ def zip(self, daemonId: str, uuid: str, source: str, targets: list[str]) -> bool
221221
压缩多个文件或文件夹到指定位置。
222222
223223
**参数:**
224-
<br> - daemonId (str): 守护进程的唯一标识符。
225-
<br> - uuid (str): 实例的唯一标识符。
226-
<br> - source (str): 需要压缩到的 zip 文件路径。
227-
<br> - targets (list): 要压缩的目标文件或文件夹的路径。
224+
- daemonId (str): 守护进程的唯一标识符。
225+
- uuid (str): 实例的唯一标识符。
226+
- source (str): 需要压缩到的 zip 文件路径。
227+
- targets (list): 要压缩的目标文件或文件夹的路径。
228228
229229
**返回:**
230-
<br> - bool: 压缩成功后返回True。
230+
- bool: 压缩成功后返回True。
231231
"""
232232
return send(
233233
"POST",
@@ -243,15 +243,15 @@ def unzip(
243243
解压缩指定的zip文件到目标位置。
244244
245245
**参数:**
246-
<br> - daemonId (str): 守护进程的唯一标识符。
247-
<br> - uuid (str): 实例的唯一标识符。
248-
<br> - source (str): 需要解压的zip文件路径。
249-
<br> - target (str): 解压到的目标路径。
250-
<br> - code (str, optional): 压缩文件的编码方式,默认为"utf-8"。
246+
- daemonId (str): 守护进程的唯一标识符。
247+
- uuid (str): 实例的唯一标识符。
248+
- source (str): 需要解压的zip文件路径。
249+
- target (str): 解压到的目标路径。
250+
- code (str, optional): 压缩文件的编码方式,默认为"utf-8"。
251251
可选值: utf-8, gbk, big5
252252
253253
**返回:**
254-
<br> - bool: 解压成功后返回True。
254+
- bool: 解压成功后返回True。
255255
"""
256256
return send(
257257
"POST",
@@ -265,12 +265,12 @@ def delete(self, daemonId: str, uuid: str, targets: list[str]) -> bool:
265265
删除多个文件或文件夹。
266266
267267
**参数:**
268-
<br> - daemonId (str): 守护进程的唯一标识符。
269-
<br> - uuid (str): 实例的唯一标识符。
270-
<br> - targets (list): 要删除的文件或文件夹的路径。
268+
- daemonId (str): 守护进程的唯一标识符。
269+
- uuid (str): 实例的唯一标识符。
270+
- targets (list): 要删除的文件或文件夹的路径。
271271
272272
**返回:**
273-
<br> - bool: 删除成功后返回True。
273+
- bool: 删除成功后返回True。
274274
"""
275275
return send(
276276
"DELETE",
@@ -284,12 +284,12 @@ def createFile(self, daemonId: str, uuid: str, target: str) -> bool:
284284
创建文件。
285285
286286
**参数:**
287-
<br> - daemonId (str): 守护进程的唯一标识符。
288-
<br> - uuid (str): 实例的唯一标识符。
289-
<br> - target (str): 目标文件的路径,包含文件名。
287+
- daemonId (str): 守护进程的唯一标识符。
288+
- uuid (str): 实例的唯一标识符。
289+
- target (str): 目标文件的路径,包含文件名。
290290
291291
**返回:**
292-
<br> - bool: 创建成功后返回True。
292+
- bool: 创建成功后返回True。
293293
"""
294294
return send(
295295
"POST",
@@ -303,12 +303,12 @@ def createFloder(self, daemonId: str, uuid: str, target: str) -> bool:
303303
创建文件夹
304304
305305
**参数:**
306-
<br> - daemonId (str): 守护进程的唯一标识符。
307-
<br> - uuid (str): 实例的唯一标识符。
308-
<br> - target (str): 目标文件夹的路径。
306+
- daemonId (str): 守护进程的唯一标识符。
307+
- uuid (str): 实例的唯一标识符。
308+
- target (str): 目标文件夹的路径。
309309
310310
**返回:**
311-
<br> - bool: 创建成功后返回True。
311+
- bool: 创建成功后返回True。
312312
"""
313313
return send(
314314
"POST",

0 commit comments

Comments
 (0)