每个服务器都有一个工作区 — 用来存储文件和文件夹的虚拟文件系统。应用可以从工作区内容中发布。
GET /api/servers/:serverId/workspace
const workspace = await client.getWorkspace('server-id')workspace = client.get_workspace("server-id")PATCH /api/servers/:serverId/workspace
await client.updateWorkspace('server-id', { name: 'Updated' })client.update_workspace("server-id", name="Updated")GET /api/servers/:serverId/workspace/tree
返回完整的工作区树结构。
const tree = await client.getWorkspaceTree('server-id')tree = client.get_workspace_tree("server-id")GET /api/servers/:serverId/workspace/stats
const stats = await client.getWorkspaceStats('server-id')stats = client.get_workspace_stats("server-id")GET /api/servers/:serverId/workspace/children?parentId=folder-id
const children = await client.listWorkspaceChildren('server-id', 'parent-folder-id')children = client.list_workspace_children("server-id", parent_id="parent-folder-id")POST /api/servers/:serverId/workspace/children/batch
const result = await client.batchListChildren('server-id', ['folder-1', 'folder-2'])result = client.batch_list_children("server-id", parent_ids=["folder-1", "folder-2"])GET /api/servers/:serverId/workspace/download
将整个工作区下载为 ZIP 文件。
const blob = await client.downloadWorkspace('server-id')data = client.download_workspace("server-id")POST /api/servers/:serverId/workspace/folders
const folder = await client.createWorkspaceFolder('server-id', {
name: 'docs',
parentId: null,
})folder = client.create_workspace_folder("server-id", name="docs")PATCH /api/servers/:serverId/workspace/folders/:folderId
await client.updateWorkspaceFolder('server-id', 'folder-id', { name: 'renamed' })client.update_workspace_folder("server-id", "folder-id", name="renamed")DELETE /api/servers/:serverId/workspace/folders/:folderId
await client.deleteWorkspaceFolder('server-id', 'folder-id')client.delete_workspace_folder("server-id", "folder-id")GET /api/servers/:serverId/workspace/folders/search
const folders = await client.searchWorkspaceFolders('server-id', { query: 'docs' })folders = client.search_workspace_folders("server-id", query="docs")GET /api/servers/:serverId/workspace/folders/:folderId/download
将特定文件夹下载为 ZIP 文件。
const blob = await client.downloadWorkspaceFolder('server-id', 'folder-id')data = client.download_workspace_folder("server-id", "folder-id")POST /api/servers/:serverId/workspace/files
const file = await client.createWorkspaceFile('server-id', {
name: 'index.html',
content: '<h1>Hello</h1>',
parentId: 'folder-id',
})file = client.create_workspace_file("server-id",
name="index.html",
content="<h1>Hello</h1>",
parentId="folder-id",
)GET /api/servers/:serverId/workspace/files/:fileId
const file = await client.getWorkspaceFile('server-id', 'file-id')file = client.get_workspace_file("server-id", "file-id")PATCH /api/servers/:serverId/workspace/files/:fileId
await client.updateWorkspaceFile('server-id', 'file-id', {
content: '<h1>Updated</h1>',
})client.update_workspace_file("server-id", "file-id", content="<h1>Updated</h1>")DELETE /api/servers/:serverId/workspace/files/:fileId
await client.deleteWorkspaceFile('server-id', 'file-id')client.delete_workspace_file("server-id", "file-id")GET /api/servers/:serverId/workspace/files/search
const files = await client.searchWorkspaceFiles('server-id', { query: 'index' })files = client.search_workspace_files("server-id", query="index")POST /api/servers/:serverId/workspace/files/:fileId/clone
const clone = await client.cloneWorkspaceFile('server-id', 'file-id')clone = client.clone_workspace_file("server-id", "file-id")POST /api/servers/:serverId/workspace/nodes/paste
await client.pasteWorkspaceNodes('server-id', {
nodeIds: ['file-1', 'folder-1'],
targetParentId: 'destination-folder',
mode: 'copy',
})client.paste_workspace_nodes("server-id",
nodeIds=["file-1", "folder-1"],
targetParentId="destination-folder",
mode="copy",
)POST /api/servers/:serverId/workspace/commands
await client.runWorkspaceCommands('server-id', {
commands: [
{ type: 'rename', nodeId: 'file-id', name: 'new-name.txt' },
],
})client.run_workspace_commands("server-id", commands=[
{"type": "rename", "nodeId": "file-id", "name": "new-name.txt"},
])POST /api/servers/:serverId/workspace/upload
多部分上传。字段:file(二进制)、parentId(可选字符串)。
const formData = new FormData()
formData.append('file', fileBlob, 'photo.png')
await client.uploadWorkspaceFile('server-id', formData)client.upload_workspace_file("server-id", file=open("photo.png", "rb"), parent_id="folder-id")