taolib.testing.file_storage.cdn#

CDN 模块。

导出 CDN 协议和实现。

Submodules#

Classes#

CloudFrontCDNProvider

AWS CloudFront CDN 提供商。

GenericCDNProvider

通用 CDN 提供商。

CDNProviderProtocol

CDN 提供商协议。

Package Contents#

class taolib.testing.file_storage.cdn.CloudFrontCDNProvider(distribution_domain: str, key_pair_id: str = '', private_key: str = '')#

AWS CloudFront CDN 提供商。

_domain#
_key_pair_id = ''#
_private_key = ''#
generate_url(bucket: str, key: str) str#

生成 CloudFront 访问 URL。

sign_url(url: str, expires_in: int = 3600) str#

生成 CloudFront 签名 URL。

注意:完整的 CloudFront 签名需要 RSA 私钥。 此处提供 HMAC 简化签名方案。

async invalidate_paths(paths: list[str]) None#

CloudFront 缓存刷新。

注意:完整实现需要 boto3 调用 create_invalidation API。 此处为占位实现。

async invalidate_all() None#

CloudFront 全量缓存刷新。

class taolib.testing.file_storage.cdn.GenericCDNProvider(base_url: str, signing_key: str = '')#

通用 CDN 提供商。

支持自定义 base URL 和基于 HMAC 的 URL 签名。

_base_url#
_signing_key = ''#
generate_url(bucket: str, key: str) str#

生成 CDN 访问 URL。

sign_url(url: str, expires_in: int = 3600) str#

生成 HMAC 签名 URL。

async invalidate_paths(paths: list[str]) None#

通用 CDN 无内置刷新机制(留空实现)。

async invalidate_all() None#

通用 CDN 无内置全量刷新机制。

class taolib.testing.file_storage.cdn.CDNProviderProtocol#

Bases: Protocol

CDN 提供商协议。

generate_url(bucket: str, key: str) str#

生成 CDN 访问 URL。

sign_url(url: str, expires_in: int = 3600) str#

生成签名 URL。

async invalidate_paths(paths: list[str]) None#

刷新 CDN 缓存(指定路径)。

async invalidate_all() None#

刷新 CDN 全部缓存。