""" 文件管理 API 客户端 """ from httpx import AsyncClient import io class FileAPI: """文件管理 API 客户端""" def __init__(self, client: AsyncClient): self.client = client async def get_file_list(self): """获取文件列表""" return await self.client.get('/api/files') async def get_file_by_id(self, file_id): """根据ID获取文件""" return await self.client.get(f'/api/files/{file_id}') async def upload(self, file_path, upload_user): """上传文件""" with open(file_path, 'rb') as f: return await self.client.post('/api/files/upload', json={'file': file_path, 'uploadUser': upload_user}) async def upload_file(self, file_content, filename, upload_user="test_user"): """上传文件(内存方式)""" files = {'file': (filename, file_content, 'text/plain')} headers = {'X-Username': upload_user} return await self.client.post('/api/files/upload', files=files, headers=headers) async def download(self, file_id): """下载文件""" return await self.client.get(f'/api/files/{file_id}/download') async def delete(self, file_id): """删除文件""" return await self.client.delete(f'/api/files/{file_id}') async def get_file_info(self, file_id): """获取文件信息(别名)""" return await self.get_file_by_id(file_id) async def download_file(self, file_id): """下载文件(别名)""" return await self.download(file_id) async def delete_file(self, file_id): """删除文件(别名)""" return await self.delete(file_id) class SysFileAPI(FileAPI): """系统文件 API (别名)""" pass