taolib.testing.file_storage#
文件上传和存储管理模块。
提供大文件分片上传、云存储集成、CDN 分发、访问控制、生命周期管理等功能。
版本: 0.1.0
Submodules#
- taolib.testing.file_storage.cdn
- taolib.testing.file_storage.client
- taolib.testing.file_storage.errors
- taolib.testing.file_storage.events
- taolib.testing.file_storage.models
- taolib.testing.file_storage.processing
- taolib.testing.file_storage.repository
- taolib.testing.file_storage.server
- taolib.testing.file_storage.services
- taolib.testing.file_storage.storage
Exceptions#
所有存储错误的基类。 |
Classes#
文件存储客户端。 |
|
文件访问级别枚举。 |
|
文件状态枚举。 |
|
媒体类型分类枚举。 |
|
存储类型枚举。 |
|
缩略图尺寸规格枚举。 |
|
上传状态枚举。 |
Package Contents#
- class taolib.testing.file_storage.FileStorageClient(base_url: str = 'http://localhost:8002', token: str | None = None, timeout: float = 30.0)#
文件存储客户端。
- _base_url = ''#
- _timeout = 30.0#
- _client() httpx.Client#
- _async_client() httpx.AsyncClient#
- upload_file(bucket_id: str, file_path: str | pathlib.Path, object_key: str, content_type: str | None = None) dict[str, Any]#
上传文件。
自动根据文件大小选择简单上传或分片上传。
- download_file(file_id: str, dest_path: str | pathlib.Path) pathlib.Path#
下载文件。
- init_upload(bucket_id: str, object_key: str, filename: str, content_type: str, total_size_bytes: int, chunk_size_bytes: int = 5 * 1024 * 1024) dict[str, Any]#
初始化分片上传。
- class taolib.testing.file_storage.AccessLevel#
Bases:
enum.StrEnum文件访问级别枚举。
- PUBLIC = 'public'#
- PRIVATE = 'private'#
- SIGNED_URL = 'signed_url'#
- class taolib.testing.file_storage.FileStatus#
Bases:
enum.StrEnum文件状态枚举。
- PENDING = 'pending'#
- ACTIVE = 'active'#
- ARCHIVED = 'archived'#
- DELETED = 'deleted'#
- class taolib.testing.file_storage.MediaType#
Bases:
enum.StrEnum媒体类型分类枚举。
- IMAGE = 'image'#
- VIDEO = 'video'#
- DOCUMENT = 'document'#
- AUDIO = 'audio'#
- OTHER = 'other'#
- class taolib.testing.file_storage.StorageClass#
Bases:
enum.StrEnum存储类型枚举。
- STANDARD = 'standard'#
- INFREQUENT_ACCESS = 'infrequent_access'#
- ARCHIVE = 'archive'#
- class taolib.testing.file_storage.ThumbnailSize#
Bases:
enum.StrEnum缩略图尺寸规格枚举。
- SMALL = 'small'#
- MEDIUM = 'medium'#
- LARGE = 'large'#