SuperAPI AI 工具集

glb-compressor-server

编程与开发

查看项目

更新于 10-15 23:46

技能介绍

用途:作为压缩 GLB/glTF 三维模型的 HTTP 微服务,提供同步与 SSE 流式压缩接口,并支持完整 CORS。

启动方式:生产环境执行 glb-server;开发环境热重载执行 bun run dev;自定义端口执行 PORT=3000 bun run start。默认端口 8080,可用 PORT 环境变量覆盖。

接口:GET /healthz 返回 200 ok 健康检查。POST /compress 同步压缩,接收 multipart/form-data(字段 file)或原始 application/octet-stream,返回压缩后的 GLB 二进制;支持 query 参数或表单字段 preset(default、balanced、aggressive、max)与 simplify(0 到 1 的网格简化比例,如 0.5),同时提供时表单字段优先。响应头包含 X-Request-ID、X-Original-Size、X-Compressed-Size、X-Compression-Method(gltfpack 或 meshopt)、X-Compression-Ratio 与 Content-Disposition。POST /compress-stream 为 SSE 流式压缩,仅支持 multipart,事件类型有 log、result(含 requestId、filename、base64 data、originalSize、compressedSize、ratio、method)与 error,结束后关闭流。

错误响应统一为 JSON,错误码包括 NO_FILE_PROVIDED、INVALID_GLB、FILE_TOO_LARGE、INVALID_CONTENT_TYPE、COMPRESSION_FAILED。限制:最大文件 100 MB,gltfpack 单文件超时 60 秒;流式接口以 base64 传输,体积比二进制约大 33%,接近上限的大文件建议用 /compress。架构上 import.meta.main 守卫允许将 server/main.ts 作为库导入而不启动服务,X-Request-ID 逐请求生成并记录日志。其余配置与部署细节暂未提供。