123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # -*- 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
|