taolib.testing.file_storage.processing#
文件处理模块。
导出处理协议和实现。
Submodules#
Classes#
文件处理管道。 |
|
文件处理结果。 |
|
文件验证结果。 |
|
文件验证器协议。 |
|
缩略图生成器协议。 |
|
缩略图生成输出。 |
|
默认文件验证器实现。 |
Package Contents#
- class taolib.testing.file_storage.processing.ProcessingPipeline(validator: taolib.testing.file_storage.processing.protocols.FileValidatorProtocol, thumbnail_generator: taolib.testing.file_storage.processing.protocols.ThumbnailGeneratorProtocol | None = None)#
文件处理管道。
编排验证和后处理步骤。
- _validator#
- _thumbnail_generator = None#
- async process_upload(filename: str, declared_content_type: str, data: bytes, allowed_mime_types: list[str] | None = None, max_file_size_bytes: int | None = None) ProcessingResult#
处理上传的文件。
执行验证并计算校验和。
- 参数:
filename -- 文件名
declared_content_type -- 声明的 MIME 类型
data -- 文件数据
allowed_mime_types -- 允许的 MIME 类型
max_file_size_bytes -- 最大文件大小
- 返回:
处理结果
- 抛出:
FileValidationError -- 如果验证失败
- async generate_thumbnails(data: bytes, content_type: str, sizes: list[taolib.testing.file_storage.models.enums.ThumbnailSize] | None = None) list[taolib.testing.file_storage.processing.protocols.ThumbnailOutput]#
生成缩略图。
- 参数:
data -- 原始文件数据
content_type -- MIME 类型
sizes -- 要生成的尺寸列表
- 返回:
缩略图输出列表
- class taolib.testing.file_storage.processing.ProcessingResult#
文件处理结果。
- class taolib.testing.file_storage.processing.FileValidationResult#
文件验证结果。
- class taolib.testing.file_storage.processing.FileValidatorProtocol#
Bases:
Protocol文件验证器协议。
- async validate(filename: str, declared_content_type: str, size_bytes: int, header_bytes: bytes, allowed_mime_types: list[str] | None = None, max_file_size_bytes: int | None = None) FileValidationResult#
验证文件。
- 参数:
filename -- 文件名
declared_content_type -- 声明的 MIME 类型
size_bytes -- 文件大小
header_bytes -- 文件头部字节(用于 magic byte 检测)
allowed_mime_types -- 允许的 MIME 类型列表(None 表示全部允许)
max_file_size_bytes -- 最大文件大小(None 表示不限制)
- 返回:
验证结果
- class taolib.testing.file_storage.processing.ThumbnailGeneratorProtocol#
Bases:
Protocol缩略图生成器协议。
- async generate(source_data: bytes, content_type: str, sizes: list[taolib.testing.file_storage.models.enums.ThumbnailSize] | None = None) list[ThumbnailOutput]#
生成缩略图。
- 参数:
source_data -- 原始图片数据
content_type -- MIME 类型
sizes -- 要生成的尺寸列表(None 表示全部规格)
- 返回:
缩略图输出列表
- class taolib.testing.file_storage.processing.ThumbnailOutput#
缩略图生成输出。
- class taolib.testing.file_storage.processing.DefaultFileValidator#
默认文件验证器实现。