taolib.testing.file_storage.models

目录

taolib.testing.file_storage.models#

文件存储模型模块。

导出所有 Pydantic 数据模型。

Submodules#

Classes#

BucketBase

存储桶基础字段。

BucketCreate

创建存储桶的输入模型。

BucketDocument

存储桶的 MongoDB 文档模型。

BucketResponse

存储桶的 API 响应模型。

BucketUpdate

更新存储桶的输入模型(所有字段可选)。

LifecycleRules

生命周期策略配置。

AccessLevel

文件访问级别枚举。

FileStatus

文件状态枚举。

MediaType

媒体类型分类枚举。

StorageClass

存储类型枚举。

ThumbnailSize

缩略图尺寸规格枚举。

UploadStatus

上传状态枚举。

FileMetadataBase

文件元数据基础字段。

FileMetadataCreate

创建文件元数据的输入模型。

FileMetadataDocument

文件元数据的 MongoDB 文档模型。

FileMetadataResponse

文件元数据的 API 响应模型。

FileMetadataUpdate

更新文件元数据的输入模型(所有字段可选)。

BucketStatsResponse

存储桶统计响应。

StorageOverviewResponse

全局存储概览响应。

UploadStatsResponse

上传统计响应。

ThumbnailDocument

缩略图的 MongoDB 文档模型。

ThumbnailInfo

缩略图信息(嵌入式轻量模型)。

ChunkRecord

分片记录模型。

UploadSessionCreate

创建上传会话的输入模型。

UploadSessionDocument

上传会话的 MongoDB 文档模型。

UploadSessionResponse

上传会话的 API 响应模型。

FileVersionDocument

文件版本的 MongoDB 文档模型。

FileVersionResponse

文件版本的 API 响应模型。

Package Contents#

class taolib.testing.file_storage.models.BucketBase#

Bases: pydantic.BaseModel

存储桶基础字段。

name: str#
description: str#
access_level: taolib.testing.file_storage.models.enums.AccessLevel#
max_file_size_bytes: int#
allowed_mime_types: list[str]#
storage_class: taolib.testing.file_storage.models.enums.StorageClass#
tags: list[str]#
lifecycle_rules: LifecycleRules | None#
class taolib.testing.file_storage.models.BucketCreate#

Bases: BucketBase

创建存储桶的输入模型。

class taolib.testing.file_storage.models.BucketDocument#

Bases: BucketBase

存储桶的 MongoDB 文档模型。

id: str#
file_count: int = 0#
total_size_bytes: int = 0#
created_by: str = 'system'#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
to_response() BucketResponse#

转换为 API 响应。

class taolib.testing.file_storage.models.BucketResponse#

Bases: BucketBase

存储桶的 API 响应模型。

id: str#
file_count: int#
total_size_bytes: int#
created_by: str#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
class taolib.testing.file_storage.models.BucketUpdate#

Bases: pydantic.BaseModel

更新存储桶的输入模型(所有字段可选)。

description: str | None = None#
access_level: taolib.testing.file_storage.models.enums.AccessLevel | None = None#
max_file_size_bytes: int | None = None#
allowed_mime_types: list[str] | None = None#
storage_class: taolib.testing.file_storage.models.enums.StorageClass | None = None#
tags: list[str] | None = None#
lifecycle_rules: LifecycleRules | None = None#
class taolib.testing.file_storage.models.LifecycleRules#

Bases: pydantic.BaseModel

生命周期策略配置。

auto_expire_days: int | None#
versioning_enabled: bool#
max_versions: int#
class taolib.testing.file_storage.models.AccessLevel#

Bases: enum.StrEnum

文件访问级别枚举。

PUBLIC = 'public'#
PRIVATE = 'private'#
SIGNED_URL = 'signed_url'#
class taolib.testing.file_storage.models.FileStatus#

Bases: enum.StrEnum

文件状态枚举。

PENDING = 'pending'#
ACTIVE = 'active'#
ARCHIVED = 'archived'#
DELETED = 'deleted'#
class taolib.testing.file_storage.models.MediaType#

Bases: enum.StrEnum

媒体类型分类枚举。

IMAGE = 'image'#
VIDEO = 'video'#
DOCUMENT = 'document'#
AUDIO = 'audio'#
OTHER = 'other'#
class taolib.testing.file_storage.models.StorageClass#

Bases: enum.StrEnum

存储类型枚举。

STANDARD = 'standard'#
INFREQUENT_ACCESS = 'infrequent_access'#
ARCHIVE = 'archive'#
class taolib.testing.file_storage.models.ThumbnailSize#

Bases: enum.StrEnum

缩略图尺寸规格枚举。

SMALL = 'small'#
MEDIUM = 'medium'#
LARGE = 'large'#
class taolib.testing.file_storage.models.UploadStatus#

Bases: enum.StrEnum

上传状态枚举。

INITIATED = 'initiated'#
IN_PROGRESS = 'in_progress'#
COMPLETING = 'completing'#
COMPLETED = 'completed'#
ABORTED = 'aborted'#
EXPIRED = 'expired'#
class taolib.testing.file_storage.models.FileMetadataBase#

Bases: pydantic.BaseModel

文件元数据基础字段。

bucket_id: str#
object_key: str#
original_filename: str#
content_type: str#
size_bytes: int#
media_type: taolib.testing.file_storage.models.enums.MediaType#
access_level: taolib.testing.file_storage.models.enums.AccessLevel#
description: str#
tags: list[str]#
custom_metadata: dict[str, Any]#
class taolib.testing.file_storage.models.FileMetadataCreate#

Bases: FileMetadataBase

创建文件元数据的输入模型。

class taolib.testing.file_storage.models.FileMetadataDocument#

Bases: FileMetadataBase

文件元数据的 MongoDB 文档模型。

id: str#
storage_path: str = ''#
checksum_sha256: str = ''#
version: int = 1#
status: taolib.testing.file_storage.models.enums.FileStatus#
cdn_url: str | None = None#
thumbnails: list[taolib.testing.file_storage.models.thumbnail.ThumbnailInfo]#
expires_at: datetime.datetime | None = None#
created_by: str = 'system'#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
to_response() FileMetadataResponse#

转换为 API 响应。

class taolib.testing.file_storage.models.FileMetadataResponse#

Bases: FileMetadataBase

文件元数据的 API 响应模型。

id: str#
storage_path: str#
checksum_sha256: str#
version: int#
status: taolib.testing.file_storage.models.enums.FileStatus#
cdn_url: str | None#
thumbnails: list[taolib.testing.file_storage.models.thumbnail.ThumbnailInfo]#
expires_at: datetime.datetime | None#
created_by: str#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
class taolib.testing.file_storage.models.FileMetadataUpdate#

Bases: pydantic.BaseModel

更新文件元数据的输入模型(所有字段可选)。

access_level: taolib.testing.file_storage.models.enums.AccessLevel | None = None#
description: str | None = None#
tags: list[str] | None = None#
custom_metadata: dict[str, Any] | None = None#
class taolib.testing.file_storage.models.BucketStatsResponse#

Bases: pydantic.BaseModel

存储桶统计响应。

bucket_id: str#
bucket_name: str#
file_count: int#
total_size_bytes: int#
upload_count: int#
download_count: int#
class taolib.testing.file_storage.models.StorageOverviewResponse#

Bases: pydantic.BaseModel

全局存储概览响应。

total_buckets: int#
total_files: int#
total_size_bytes: int#
active_uploads: int#
class taolib.testing.file_storage.models.UploadStatsResponse#

Bases: pydantic.BaseModel

上传统计响应。

total_uploads: int#
completed: int#
failed: int#
in_progress: int#
total_bytes_uploaded: int#
class taolib.testing.file_storage.models.ThumbnailDocument#

Bases: pydantic.BaseModel

缩略图的 MongoDB 文档模型。

id: str#
file_id: str#
size: taolib.testing.file_storage.models.enums.ThumbnailSize#
width: int#
height: int#
content_type: str#
storage_path: str#
size_bytes: int#
created_at: datetime.datetime#
model_config#
to_info(url: str = '') ThumbnailInfo#

转换为嵌入式信息模型。

class taolib.testing.file_storage.models.ThumbnailInfo#

Bases: pydantic.BaseModel

缩略图信息(嵌入式轻量模型)。

size: taolib.testing.file_storage.models.enums.ThumbnailSize#
width: int#
height: int#
url: str#
storage_path: str#
size_bytes: int#
class taolib.testing.file_storage.models.ChunkRecord#

Bases: pydantic.BaseModel

分片记录模型。

id: str#
session_id: str#
chunk_index: int#
size_bytes: int#
checksum_sha256: str#
storage_path: str#
etag: str | None#
uploaded_at: datetime.datetime#
model_config#
class taolib.testing.file_storage.models.UploadSessionCreate#

Bases: UploadSessionBase

创建上传会话的输入模型。

class taolib.testing.file_storage.models.UploadSessionDocument#

Bases: UploadSessionBase

上传会话的 MongoDB 文档模型。

id: str#
status: taolib.testing.file_storage.models.enums.UploadStatus#
uploaded_chunks: list[int]#
uploaded_bytes: int = 0#
backend_upload_id: str | None = None#
created_by: str = 'system'#
expires_at: datetime.datetime#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
property progress_percent: float#

计算上传进度百分比。

to_response() UploadSessionResponse#

转换为 API 响应。

class taolib.testing.file_storage.models.UploadSessionResponse#

Bases: UploadSessionBase

上传会话的 API 响应模型。

id: str#
status: taolib.testing.file_storage.models.enums.UploadStatus#
uploaded_chunks: list[int]#
uploaded_bytes: int#
progress_percent: float#
backend_upload_id: str | None#
created_by: str#
expires_at: datetime.datetime#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
class taolib.testing.file_storage.models.FileVersionDocument#

Bases: pydantic.BaseModel

文件版本的 MongoDB 文档模型。

id: str#
file_id: str#
version_number: int#
size_bytes: int#
checksum_sha256: str#
storage_path: str#
created_by: str#
created_at: datetime.datetime#
model_config#
to_response() FileVersionResponse#

转换为 API 响应。

class taolib.testing.file_storage.models.FileVersionResponse#

Bases: pydantic.BaseModel

文件版本的 API 响应模型。

id: str#
file_id: str#
version_number: int#
size_bytes: int#
checksum_sha256: str#
storage_path: str#
created_by: str#
created_at: datetime.datetime#