SuperAPI AI 工具集

litestar-file-uploads

智能体与模型

查看项目

更新于 10-15 16:48

技能介绍

用途:为 Litestar 应用规划和实现 multipart 文件上传端点,覆盖输入形态选择、传输边界校验、体积限制与安全处理。

主要能力:

  1. 选择上传输入形态:单个 UploadFile;字段与普通字段混用时的类型化 multipart dataclass/模型;动态字段名用 dict[str, UploadFile];同质多文件用 list[UploadFile]。
  2. multipart 显式声明:通过 Body(media_type=RequestEncodingType.MULTI_PART) 声明 multipart。
  3. 请求体限制:在默认不足时用 request_max_body_size 显式设置,敏感端点应下调上限。
  4. 安全处理:所有上传文件视为不可信输入;先校验文件名、内容类型、体积预期和字段结构,再做扫描、持久化或转换;避免无界内存读取,大文件应流转到存储或服务。
  5. 异步与同步:异步处理函数用异步文件读取,同步处理函数用 data.file.read()。
  6. 跨技能协作:非文件请求解析参考 litestar-requests;上传后的下载与文件服务参考 litestar-responses;multipart 与大小限制回归测试参考 litestar-testing;认证与严格策略参考 litestar-security。

使用方式:按需阅读参考文件。单文件上传、类型化 multipart 模型、多文件表单及异步/同步上传处理见 references/upload-patterns.md;请求体限制、UploadFile 内部机制、安全处理指引与测试模式见 references/limits-and-testing.md。

适用场景:Litestar 中需要接收用户上传文件的接口,包括单文件、固定字段表单、动态字段名及多文件同质上传。

限制与反模式:不要用 multipart 替代普通 JSON 或表单;不要接受无前门体积限制的无界文件体;不要默认把大文件整体读入内存;不要向客户端返回内部临时文件路径或不安全元数据;不要把存储、扫描与持久化逻辑直接写进路由处理函数;表单结构已知时不要默认使用 dict[str, UploadFile]。

校验清单:确认显式声明 multipart 媒体类型;确认上传形态与真实表单契约一致;确认体积限制适配端点;确认异步/同步文件访问与处理函数风格一致;确认大文件不会意外耗尽内存;确认无效或异常文件返回确定的客户端错误;确认返回给客户端的上传元数据最小且安全。

其他事实(如安装命令、价格、平台支持)暂未提供。