# -*- coding: utf-8 -*- import oss2 class FileServeClient(object): def __init__(self, config): ''' 文本存储客户端 目前使用阿里云OSS对象存储服务 注意:文件读写,都是以object-name为索引,请保存object-name ''' self.auth = None self.bucket = None self._access_key_id = config.get("access_key_id", "") self._access_key_secret = config.get("access_key_secret", "") self._endpoint = config.get("endpoint", "") self._bucket_name = config.get("bucket_name", "") self.do_auth() def do_auth(self): ''' 身份验证 ''' auth = oss2.Auth(self._access_key_id, self._access_key_secret) bucket = oss2.Bucket(auth, self._endpoint, self._bucket_name) self.auth = auth self.bucket = bucket def upload_text_file(self, object_name: str, file_content: str) -> (any, any): ''' 文本上传 ''' result = self.bucket.put_object(object_name, bytes(file_content, encoding='utf-8')) status, request_id = result.status, result.request_id return status, request_id def download_text_content(self, object_name) -> (bool, str): ''' 下载文本内容 ''' object_stream = self.bucket.get_object(object_name) content = object_stream.read() if object_stream.client_crc == object_stream.server_crc: return True, str(content, encoding='utf-8') else: return False, '' def delete_object(self, object_name: str) -> (any, any): ''' 删除内容 ''' result = self.bucket.delete_object(object_name) status, request_id = result.status, result.request_id return status, request_id