Expand description
数据导出 Axum 流式处理器(仅 server:纯 Axum 路由,无 WASM 消费者)。 数据导出:Axum 流式路由(大文件不走 JSON 序列化)。
鉴权走 crate::api::auth::require_admin_from_headers:从 cookie 取 session,校验管理员。
两种来源:按表导出(表名白名单)/ 按查询导出(强制只读,AST 校验)。
两种格式:CSV(COPY TO STDOUT 流式)/ SQL(逐行拼 INSERT)。
Structs§
- Export
Params - Export
Source 🔒 - 解析后的导出来源。
Constants§
- SQL_
EXPORT_ 🔒CHUNK_ BYTES - 单个响应块的字节上限;缓冲达到后即推给客户端。
Functions§
- export_
csv 🔒 - CSV 导出:用 COPY … TO STDOUT WITH CSV 流式(大表不 OOM)。
- export_
data - GET /api/database/export —— 流式导出。
- export_
sql 🔒 - SQL 导出:逐行拼 INSERT(纯数据,不含 DDL)。
- is_
simple_ 🔒ident - 简单标识符校验(字母数字下划线,防 SQL 注入与路径穿越)。
- parse_
source 🔒 - 解析导出来源。
- row_
literals 🔒 - 一行文本单元格转成 SQL 字面量。
- sql_
literal 🔒 - 把单元格的文本表示转成 SQL 字面量:NULL 原样;布尔写 TRUE/FALSE;有限数值不加引号; 其余(含 NaN/Infinity)单引号转义,插入时由目标列类型解析。
- text_
cast_ 🔒query - 把查询包进子查询,按位置给列起别名后逐列
::text,由数据库输出任意类型的文本表示; 按位置取列,重名列也不冲突。 - trim_
statement_ 🔒tail - 去掉语句末尾的分号、空白与注释:嵌进子查询后,末尾的
;或行注释会破坏外层语法。