taolib.testing.file_storage#

文件上传和存储管理模块。

提供大文件分片上传、云存储集成、CDN 分发、访问控制、生命周期管理等功能。

版本: 0.1.0

Submodules#

Exceptions#

StorageError

所有存储错误的基类。

Classes#

FileStorageClient

文件存储客户端。

AccessLevel

文件访问级别枚举。

FileStatus

文件状态枚举。

MediaType

媒体类型分类枚举。

StorageClass

存储类型枚举。

ThumbnailSize

缩略图尺寸规格枚举。

UploadStatus

上传状态枚举。

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#
_headers: dict[str, str]#
_client() httpx.Client#
_async_client() httpx.AsyncClient#
create_bucket(name: str, **kwargs: Any) dict[str, Any]#

创建存储桶。

list_buckets() list[dict[str, Any]]#

列出所有存储桶。

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#

下载文件。

get_file(file_id: str) dict[str, Any]#

获取文件元数据。

delete_file(file_id: str) bool#

删除文件。

list_files(bucket_id: str | None = None, prefix: str | None = None) list[dict[str, Any]]#

列出文件。

get_file_url(file_id: str, expires_in: int = 3600) str#

获取文件访问 URL。

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]#

初始化分片上传。

upload_chunk(session_id: str, chunk_index: int, data: bytes, checksum: str | None = None) dict[str, Any]#

上传分片。

complete_upload(session_id: str) dict[str, Any]#

完成分片上传。

abort_upload(session_id: str) bool#

中止分片上传。

get_upload_status(session_id: str) dict[str, Any]#

获取上传状态。

exception taolib.testing.file_storage.StorageError#

Bases: Exception

所有存储错误的基类。

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'#
class taolib.testing.file_storage.UploadStatus#

Bases: enum.StrEnum

上传状态枚举。

INITIATED = 'initiated'#
IN_PROGRESS = 'in_progress'#
COMPLETING = 'completing'#
COMPLETED = 'completed'#
ABORTED = 'aborted'#
EXPIRED = 'expired'#