@agentunion/fastaun-browser 0.4.10 → 0.4.12
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.
- package/CHANGELOG.md +50 -0
- package/_packed_docs/CHANGELOG.md +50 -0
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +4 -2
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +2 -2
- package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +7 -4
- package/_packed_docs/sdk/09-group-rpc-manual.md +222 -38
- package/_packed_docs/sdk/09-message-rpc-manual.md +50 -26
- package/_packed_docs/sdk/09-payload-reference.md +1 -1
- package/_packed_docs/sdk/09-storage-rpc-manual.md +259 -37
- package/dist/bundle.js +320 -50
- package/dist/client/delivery.d.ts +10 -1
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +166 -20
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.js +2 -2
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +31 -5
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +9 -2
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +55 -14
- package/dist/client.js.map +1 -1
- package/dist/service-proxy.d.ts.map +1 -1
- package/dist/service-proxy.js +17 -2
- package/dist/service-proxy.js.map +1 -1
- package/dist/v2/e2ee/encrypt-p2p.js +1 -1
- package/dist/v2/e2ee/encrypt-p2p.js.map +1 -1
- package/dist/v2/session/keystore.d.ts.map +1 -1
- package/dist/v2/session/keystore.js +8 -9
- package/dist/v2/session/keystore.js.map +1 -1
- package/dist/v2/session/session.d.ts +4 -2
- package/dist/v2/session/session.d.ts.map +1 -1
- package/dist/v2/session/session.js +20 -4
- package/dist/v2/session/session.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -12,13 +12,37 @@
|
|
|
12
12
|
| [storage.delete_object](#storagedelete_object) | 删除对象 |
|
|
13
13
|
| [storage.list_objects](#storagelist_objects) | 列举对象 |
|
|
14
14
|
| [storage.list_prefixes](#storagelist_prefixes) | 列举子目录 |
|
|
15
|
-
| [storage.get_quota](#storageget_quota) | 查询配额 |
|
|
16
|
-
| [storage.get_limits](#storageget_limits) | 查询上传限制 |
|
|
17
|
-
| [storage.check_upload](#storagecheck_upload) | 上传预检(秒传检测 + 超限检测) |
|
|
18
|
-
|
|
19
|
-
###
|
|
20
|
-
|
|
21
|
-
| 方法 | 说明 |
|
|
15
|
+
| [storage.get_quota](#storageget_quota) | 查询配额 |
|
|
16
|
+
| [storage.get_limits](#storageget_limits) | 查询上传限制 |
|
|
17
|
+
| [storage.check_upload](#storagecheck_upload) | 上传预检(秒传检测 + 超限检测) |
|
|
18
|
+
|
|
19
|
+
### 目录树方法
|
|
20
|
+
|
|
21
|
+
| 方法 | 说明 |
|
|
22
|
+
|------|------|
|
|
23
|
+
| [storage.create_folder](#storagecreate_folder) | 创建目录 |
|
|
24
|
+
| [storage.get_folder](#storageget_folder) | 查询目录 |
|
|
25
|
+
| [storage.list_children](#storagelist_children) | 列出目录子节点 |
|
|
26
|
+
| [storage.rename_folder](#storagerename_folder) | 重命名目录 |
|
|
27
|
+
| [storage.move_folder](#storagemove_folder) | 移动目录 |
|
|
28
|
+
| [storage.delete_folder](#storagedelete_folder) | 删除目录 |
|
|
29
|
+
| [storage.resolve_path](#storageresolve_path) | 按路径解析节点 |
|
|
30
|
+
|
|
31
|
+
### 对象管理方法
|
|
32
|
+
|
|
33
|
+
| 方法 | 说明 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| [storage.move_object](#storagemove_object) | 移动或重命名对象 |
|
|
36
|
+
| [storage.copy_object](#storagecopy_object) | 复制对象 |
|
|
37
|
+
| [storage.batch_delete](#storagebatch_delete) | 批量删除对象/目录 |
|
|
38
|
+
| [storage.batch_head_object](#storagebatch_head_object) | 批量查询对象元数据 |
|
|
39
|
+
| [storage.set_object_meta](#storageset_object_meta) | 更新对象元数据 |
|
|
40
|
+
| [storage.get_object_url](#storageget_object_url) | 获取稳定对象 URL |
|
|
41
|
+
| [storage.append_object](#storageappend_object) | 追加写对象 |
|
|
42
|
+
|
|
43
|
+
### 数据面协调方法
|
|
44
|
+
|
|
45
|
+
| 方法 | 说明 |
|
|
22
46
|
|------|------|
|
|
23
47
|
| [storage.create_upload_session](#storagecreate_upload_session) | 申请上传 URL |
|
|
24
48
|
| [storage.complete_upload](#storagecomplete_upload) | 确认上传完成 |
|
|
@@ -28,9 +52,10 @@
|
|
|
28
52
|
|
|
29
53
|
| 方法 | 说明 |
|
|
30
54
|
|------|------|
|
|
31
|
-
| [storage.create_share_link](#storagecreate_share_link) | 创建分享链接 |
|
|
32
|
-
| [storage.list_share_links](#storagelist_share_links) | 列举分享链接 |
|
|
33
|
-
| [storage.revoke_share_link](#storagerevoke_share_link) | 撤销分享链接 |
|
|
55
|
+
| [storage.create_share_link](#storagecreate_share_link) | 创建分享链接 |
|
|
56
|
+
| [storage.list_share_links](#storagelist_share_links) | 列举分享链接 |
|
|
57
|
+
| [storage.revoke_share_link](#storagerevoke_share_link) | 撤销分享链接 |
|
|
58
|
+
| [storage.get_by_share](#storageget_by_share) | 通过分享短码读取对象 |
|
|
34
59
|
|
|
35
60
|
---
|
|
36
61
|
|
|
@@ -256,9 +281,9 @@ for obj in result["items"]:
|
|
|
256
281
|
|
|
257
282
|
---
|
|
258
283
|
|
|
259
|
-
## storage.get_quota
|
|
260
|
-
|
|
261
|
-
查询存储配额。
|
|
284
|
+
## storage.get_quota
|
|
285
|
+
|
|
286
|
+
查询存储配额。
|
|
262
287
|
|
|
263
288
|
### 参数
|
|
264
289
|
|
|
@@ -273,13 +298,193 @@ for obj in result["items"]:
|
|
|
273
298
|
| `owner_aid` | string | 所有者 AID |
|
|
274
299
|
| `used_bytes` | integer | 已使用空间(字节) |
|
|
275
300
|
| `object_count` | integer | 对象数量 |
|
|
276
|
-
| `quota_bytes` | integer | 配额上限(字节),0 表示无限制 |
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
## storage.
|
|
281
|
-
|
|
282
|
-
|
|
301
|
+
| `quota_bytes` | integer | 配额上限(字节),0 表示无限制 |
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## storage.create_folder
|
|
306
|
+
|
|
307
|
+
创建目录节点。目录和对象共用同一个 `bucket`,默认 bucket 为 `"default"`。
|
|
308
|
+
|
|
309
|
+
**参数**:
|
|
310
|
+
|
|
311
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
312
|
+
|------|------|------|------|
|
|
313
|
+
| `path` | string | 否 | 完整目录路径;提供时优先使用 |
|
|
314
|
+
| `name` | string | 否 | 目录名;未提供 `path` 时必填 |
|
|
315
|
+
| `parent_folder_id` | string | 否 | 父目录 ID |
|
|
316
|
+
| `parent_path` | string | 否 | 父目录路径,默认根目录 |
|
|
317
|
+
| `bucket` | string | 否 | 存储桶,默认 `"default"` |
|
|
318
|
+
| `owner_aid` | string | 否 | 所有者 AID,默认当前用户 |
|
|
319
|
+
| `mkdirs` | boolean | 否 | 是否递归创建父目录 |
|
|
320
|
+
| `metadata` | object | 否 | 目录元数据 |
|
|
321
|
+
| `conflict_policy` | string | 否 | `"reject"` / `"return_existing"` |
|
|
322
|
+
|
|
323
|
+
**响应**:返回 `folder`,同时在顶层展开 `folder_id`、`path`、`name`、`parent_folder_id`、`version` 等字段。
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## storage.get_folder
|
|
328
|
+
|
|
329
|
+
查询目录节点。
|
|
330
|
+
|
|
331
|
+
**参数**:`folder_id` 或 `path` 至少提供一个;可选 `bucket`、`owner_aid`。
|
|
332
|
+
|
|
333
|
+
**响应**:同 `storage.create_folder` 的 `folder` 视图。
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## storage.list_children
|
|
338
|
+
|
|
339
|
+
列出目录下的直接子目录和对象。
|
|
340
|
+
|
|
341
|
+
**参数**:
|
|
342
|
+
|
|
343
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
344
|
+
|------|------|------|------|
|
|
345
|
+
| `folder_id` / `path` | string | 否 | 目标目录;都不传表示根目录 |
|
|
346
|
+
| `type` | string | 否 | `"all"` / `"folder"` / `"object"`,默认 `"all"` |
|
|
347
|
+
| `bucket` | string | 否 | 存储桶,默认 `"default"` |
|
|
348
|
+
| `owner_aid` | string | 否 | 所有者 AID,默认当前用户 |
|
|
349
|
+
| `page` | integer | 否 | 页码,默认 1 |
|
|
350
|
+
| `size` | integer | 否 | 每页数量,最大受服务配置限制 |
|
|
351
|
+
| `order_by` | string | 否 | `"name"` / `"updated_at"` / `"size_bytes"` |
|
|
352
|
+
| `order` | string | 否 | `"asc"` / `"desc"` |
|
|
353
|
+
| `include_metadata` | boolean | 否 | 是否返回元数据,默认 `true` |
|
|
354
|
+
| `include_urls` | boolean | 否 | 是否返回 URL 字段,默认 `true` |
|
|
355
|
+
|
|
356
|
+
**响应**:`folder`、`items`、`total`、`page`、`size`、`next_marker`。`items[].node_type` 区分 `folder` / `object`。
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## storage.rename_folder
|
|
361
|
+
|
|
362
|
+
重命名目录。根目录不可改名。
|
|
363
|
+
|
|
364
|
+
**参数**:`folder_id` 或 `path`,`new_name` 必填;可选 `bucket`、`owner_aid`、`expected_version`。
|
|
365
|
+
|
|
366
|
+
**响应**:更新后的 `folder` 视图。
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## storage.move_folder
|
|
371
|
+
|
|
372
|
+
移动目录。不能移动到自身或自身子目录。
|
|
373
|
+
|
|
374
|
+
**参数**:`folder_id` 或 `path`,目标目录通过 `dst_parent_folder_id` 或 `dst_parent_path` 指定;可选 `new_name`、`bucket`、`owner_aid`、`expected_version`。
|
|
375
|
+
|
|
376
|
+
**响应**:更新后的 `folder` 视图。
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## storage.delete_folder
|
|
381
|
+
|
|
382
|
+
删除目录。
|
|
383
|
+
|
|
384
|
+
**参数**:
|
|
385
|
+
|
|
386
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
387
|
+
|------|------|------|------|
|
|
388
|
+
| `folder_id` / `path` | string | 是 | 待删除目录 |
|
|
389
|
+
| `recursive` | boolean | 否 | 非空目录必须传 `true` |
|
|
390
|
+
| `dry_run` | boolean | 否 | 只预览将删除的目录/对象 |
|
|
391
|
+
| `bucket` | string | 否 | 存储桶,默认 `"default"` |
|
|
392
|
+
| `owner_aid` | string | 否 | 所有者 AID,默认当前用户 |
|
|
393
|
+
|
|
394
|
+
**响应**:`deleted_folders`、`deleted_objects`、`deleted_object_items`、`errors`;`dry_run=true` 时返回预览列表。
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## storage.resolve_path
|
|
399
|
+
|
|
400
|
+
按路径解析目录或对象。
|
|
401
|
+
|
|
402
|
+
**参数**:`path` 必填;可选 `expected_type`(`"any"` / `"object"` / `"folder"`)、`bucket`、`owner_aid`。
|
|
403
|
+
|
|
404
|
+
**响应**:`type`、`folder_id` 或 `object_id`、`path`、`status`。
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## storage.move_object
|
|
409
|
+
|
|
410
|
+
移动或重命名对象。
|
|
411
|
+
|
|
412
|
+
**参数**:对象选择器(`object_id` / `object_key` / `path`),目标目录 `dst_parent_folder_id` 或 `dst_parent_path`;可选 `new_name`、`conflict_policy`(`"reject"` / `"replace"` / `"keep_both"`)、`expected_version`。
|
|
413
|
+
|
|
414
|
+
**响应**:返回 `object`,同时在顶层展开对象视图字段。
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## storage.copy_object
|
|
419
|
+
|
|
420
|
+
复制对象,底层内容按 CAS 引用计数复用。
|
|
421
|
+
|
|
422
|
+
**参数**:源对象选择器(`object_id` / `object_key` / `path`,也接受 `src_object_key` / `src_path`),目标 `dst_object_key` / `dst_path` 或目标父目录 + `new_name`;可选 `conflict_policy`、`copy_metadata`。
|
|
423
|
+
|
|
424
|
+
**响应**:新对象视图。
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## storage.batch_delete
|
|
429
|
+
|
|
430
|
+
批量删除对象或目录。
|
|
431
|
+
|
|
432
|
+
**参数**:
|
|
433
|
+
|
|
434
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
435
|
+
|------|------|------|------|
|
|
436
|
+
| `items` | array | 否 | 每项含 `type`、`object_id` / `object_key` / `path` / `folder_id` |
|
|
437
|
+
| `object_keys` | string[] | 否 | 兼容简写,转为对象删除 |
|
|
438
|
+
| `recursive` | boolean | 否 | 删除目录时是否递归 |
|
|
439
|
+
| `dry_run` | boolean | 否 | 只预览 |
|
|
440
|
+
|
|
441
|
+
**响应**:`deleted`、`errors`、`deleted_count`、`summary`。
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## storage.batch_head_object
|
|
446
|
+
|
|
447
|
+
批量查询对象元数据。
|
|
448
|
+
|
|
449
|
+
**参数**:`object_ids`、`paths` 至少提供一类;可选 `owner_aid`、`bucket`、`include_missing`、`include_metadata`、`include_urls`。
|
|
450
|
+
|
|
451
|
+
**响应**:`items` 和 `errors`。
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## storage.set_object_meta
|
|
456
|
+
|
|
457
|
+
更新对象元数据和可选 MIME 类型。
|
|
458
|
+
|
|
459
|
+
**参数**:对象选择器,`metadata`;可选 `merge`(默认 `true`)、`content_type`、`expected_version`。
|
|
460
|
+
|
|
461
|
+
**响应**:更新后的对象视图。
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## storage.get_object_url
|
|
466
|
+
|
|
467
|
+
获取稳定对象 URL。
|
|
468
|
+
|
|
469
|
+
**参数**:对象选择器;可选 `include_path_url`。
|
|
470
|
+
|
|
471
|
+
**响应**:`object_id`、`object_url`、`path_url`、`stable`。
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## storage.append_object
|
|
476
|
+
|
|
477
|
+
向对象尾部追加 base64 内容;对象不存在时创建。
|
|
478
|
+
|
|
479
|
+
**参数**:与 `storage.put_object` 类似,`content` 必填;可选 `object_key` / `path` / `name`、`bucket`、`owner_aid`、`content_type`、`metadata`、`expected_version`、`is_private`。
|
|
480
|
+
|
|
481
|
+
**响应**:对象视图。
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
## storage.create_upload_session
|
|
486
|
+
|
|
487
|
+
获取上传用 presigned URL。
|
|
283
488
|
|
|
284
489
|
### 参数
|
|
285
490
|
|
|
@@ -329,7 +534,7 @@ for obj in result["items"]:
|
|
|
329
534
|
| `content_type` | string | 否 | MIME 类型,默认 `"application/octet-stream"` |
|
|
330
535
|
| `is_private` | boolean | 否 | 是否私有,默认 `true` |
|
|
331
536
|
| `size_bytes` | integer | 否 | 预期文件大小(用于校验) |
|
|
332
|
-
| `skip_blob` | boolean | 否 | 秒传模式,默认 `false`;为 `true` 时跳过 blob 上传,必须提供 `sha256
|
|
537
|
+
| `skip_blob` | boolean | 否 | 秒传模式,默认 `false`;为 `true` 时跳过 blob 上传,必须提供 `sha256`,且当前 owner 已拥有相同内容 |
|
|
333
538
|
| `expected_version` | integer | 否 | 乐观并发控制版本号 |
|
|
334
539
|
| `expire_in_seconds` | integer | 否 | 过期时间(秒) |
|
|
335
540
|
| `metadata` | object | 否 | 自定义元数据 |
|
|
@@ -445,22 +650,25 @@ print(f"配额: {limits['quota_used_bytes']}/{limits['quota_total_bytes']}")
|
|
|
445
650
|
|
|
446
651
|
## storage.check_upload
|
|
447
652
|
|
|
448
|
-
上传预检:一次调用同时回答"文件是否超限"和"是否可秒传"。客户端应在计算完文件 SHA-256 后、实际上传前调用。
|
|
653
|
+
上传预检:一次调用同时回答"文件是否超限"和"当前 owner 是否可秒传"。客户端应在计算完文件 SHA-256 后、实际上传前调用。
|
|
654
|
+
|
|
655
|
+
> `check_upload` / `complete_upload(skip_blob=true)` 只允许复用当前 owner 已拥有的内容,避免跨 owner 暴露全局 CAS 存在性或跳过上传克隆他人私有内容。不同 owner 上传相同内容时,仍会在完成上传后归一到同一个 CAS blob,由服务端引用计数管理物理去重。
|
|
449
656
|
|
|
450
657
|
### 参数
|
|
451
658
|
|
|
452
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
453
|
-
|------|------|------|------|
|
|
454
|
-
| `sha256` | string | 是 | 文件内容的 SHA-256 hex(64 字符) |
|
|
455
|
-
| `size_bytes` | integer | 是 | 文件大小(字节) |
|
|
659
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
660
|
+
|------|------|------|------|
|
|
661
|
+
| `sha256` | string | 是 | 文件内容的 SHA-256 hex(64 字符) |
|
|
662
|
+
| `size_bytes` | integer | 是 | 文件大小(字节) |
|
|
663
|
+
| `owner_aid` | string | 否 | 检查指定 owner 是否可秒传,默认当前用户;必须等于当前登录 AID |
|
|
456
664
|
|
|
457
665
|
### 响应
|
|
458
666
|
|
|
459
667
|
| 字段 | 类型 | 说明 |
|
|
460
668
|
|------|------|------|
|
|
461
669
|
| `within_limit` | boolean | 文件大小是否在限制内 |
|
|
462
|
-
| `exists` | boolean |
|
|
463
|
-
| `skip_upload` | boolean | 是否可跳过上传(秒传) |
|
|
670
|
+
| `exists` | boolean | 当前 owner 是否已拥有相同内容且 CAS blob 可用 |
|
|
671
|
+
| `skip_upload` | boolean | 是否可跳过上传(秒传) |
|
|
464
672
|
|
|
465
673
|
### 使用场景
|
|
466
674
|
|
|
@@ -478,7 +686,7 @@ check = await client.call("storage.check_upload", {
|
|
|
478
686
|
if not check["within_limit"]:
|
|
479
687
|
print("文件超限,无法上传")
|
|
480
688
|
elif check["skip_upload"]:
|
|
481
|
-
#
|
|
689
|
+
# 秒传:当前 owner 已拥有相同内容,跳过上传直接 complete
|
|
482
690
|
await client.call("storage.complete_upload", {
|
|
483
691
|
"object_key": "my/file.bin",
|
|
484
692
|
"sha256": sha256,
|
|
@@ -578,9 +786,9 @@ share_url = result["aid_share_url"]
|
|
|
578
786
|
|
|
579
787
|
---
|
|
580
788
|
|
|
581
|
-
## storage.revoke_share_link
|
|
582
|
-
|
|
583
|
-
撤销分享链接。
|
|
789
|
+
## storage.revoke_share_link
|
|
790
|
+
|
|
791
|
+
撤销分享链接。
|
|
584
792
|
|
|
585
793
|
### 参数
|
|
586
794
|
|
|
@@ -595,11 +803,25 @@ share_url = result["aid_share_url"]
|
|
|
595
803
|
| `revoked` | boolean | 是否成功撤销 |
|
|
596
804
|
| `share_id` | string | 被撤销的分享短码 |
|
|
597
805
|
|
|
598
|
-
> 链接不存在或已撤销时返回通用错误(`-32000`)。
|
|
599
|
-
|
|
600
|
-
---
|
|
601
|
-
|
|
602
|
-
##
|
|
806
|
+
> 链接不存在或已撤销时返回通用错误(`-32000`)。
|
|
807
|
+
|
|
808
|
+
---
|
|
809
|
+
|
|
810
|
+
## storage.get_by_share
|
|
811
|
+
|
|
812
|
+
通过分享短码读取对象。公开分享无需额外授权;私有白名单分享需要请求者 AID 在 `allowed_aids` 内。
|
|
813
|
+
|
|
814
|
+
**参数**:
|
|
815
|
+
|
|
816
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
817
|
+
|------|------|------|------|
|
|
818
|
+
| `share_id` | string | 是 | 分享短码 |
|
|
819
|
+
|
|
820
|
+
**响应**:小对象返回 `content`;大对象返回 `download_url`。同时返回 `object_id`、`object_key`、`path`、`size_bytes`、`content_type`、`sha256`。
|
|
821
|
+
|
|
822
|
+
---
|
|
823
|
+
|
|
824
|
+
## 错误码
|
|
603
825
|
|
|
604
826
|
| code | 说明 |
|
|
605
827
|
|------|------|
|