60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
from typing import Optional
|
||
|
||
from pydantic import BaseModel
|
||
|
||
|
||
class S3UploadResult(BaseModel):
|
||
"""S3 上传结果"""
|
||
|
||
success: bool
|
||
"""上传是否成功"""
|
||
url: Optional[str] = None
|
||
"""直链 URL,仅在上传成功时返回"""
|
||
key: Optional[str] = None
|
||
"""S3 对象键"""
|
||
error: Optional[str] = None
|
||
"""错误信息,仅在上传失败时返回"""
|
||
|
||
|
||
class S3CopyResult(BaseModel):
|
||
"""S3 复制结果"""
|
||
|
||
success: bool
|
||
"""复制是否成功"""
|
||
source_key: Optional[str] = None
|
||
"""源 S3 对象键"""
|
||
dest_key: Optional[str] = None
|
||
"""目标 S3 对象键"""
|
||
dest_url: Optional[str] = None
|
||
"""目标直链 URL,仅在复制成功时返回"""
|
||
error: Optional[str] = None
|
||
"""错误信息,仅在复制失败时返回"""
|
||
|
||
|
||
class S3Object(BaseModel):
|
||
"""S3 对象基本信息"""
|
||
|
||
key: str
|
||
"""对象键"""
|
||
size: int
|
||
"""对象大小(字节)"""
|
||
last_modified: str
|
||
"""最后修改时间"""
|
||
|
||
|
||
class S3ListResult(BaseModel):
|
||
"""S3 列表操作结果"""
|
||
|
||
success: bool
|
||
"""操作是否成功"""
|
||
objects: list[S3Object] = []
|
||
"""对象列表"""
|
||
prefix: str = ""
|
||
"""前缀"""
|
||
is_truncated: bool = False
|
||
"""是否存在更多对象"""
|
||
continuation_token: Optional[str] = None
|
||
"""继续令牌,用于分页"""
|
||
error: Optional[str] = None
|
||
"""错误信息"""
|