Esempio n. 1
0
 def exexcute_update(self, sql):
     """执行更新语句"""
     try:
         count = self.__execute(sql)
         self.conn.commit()
     except Exception as e:
         logger.error(e)
         logger.error(f"Update Faild ! SQL is {sql}")
         self.conn.rollback()
Esempio n. 2
0
def get_img_file(key,chunk=COS_DOWNLOAD_IMG_CHUNK,save=False,save_path=None,ETag='',rang=''):
    try:
        total_size = get_object_meta(key)['Content-Length']
        response = cos_client.get_object(
            Bucket=COS_BUCKET,
            Key=key,
            Range=rang,  # 指定下载范围
            IfMatch=ETag, # ETag 与指定的内容一致时才返回
            ResponseContentEncoding='utf-8',
            ResponseContentLanguage='zh-cn',
            ResponseContentType='image/png',  # 设置Response HTTP 头部
            # ResponseContentType='text/html; charset=utf-8',  # 设置Response HTTP 头部
        )
    except CosServiceError as e:
        logger.error(e.get_origin_msg())
        logger.error(e.get_digest_msg())
        logger.error(e.get_status_code())
        logger.error(e.get_error_code())
        logger.error(e.get_error_msg())
        logger.error(e.get_resource_location())
        logger.error(e.get_trace_id())
        logger.error(e.get_request_id())

    if save and save_path is None:
        logger.warn("存储路径未填写,系统默认存储到当前目录/download")
        if not os.path.exists("./download"):
            os.mkdir("./download")
        response['Body'].get_stream_to_file("./download")
    elif save and save_path:
        logger.info(f"正在将文件[{key}]写入路径[{save_path}]")
        response['Body'].get_stream_to_file(save_path)

    fp = response['Body'].get_raw_stream()
    image_bytes = b""
    current_size = 0
    block = fp.read(chunk)
    while block:
        current_size += len(block)
        image_bytes += block
        rate = int(100 * (float(current_size) / float(total_size)))
        print(f'\r当前文件{key}的下载进度:{rate}%',end=' ') # \r:主要功能是将光标回到一行的开始位置;
        if len(block) < chunk : print('')
        sys.stdout.flush()
        block = fp.read(chunk)

    # 对图片解码
    image_array = np.frombuffer(image_bytes, np.uint8)
    image = cv.imdecode(image_array,cv.COLOR_RGB2BGR)
    return response,image
Esempio n. 3
0
def get_object_meta(key):
    try:
        result_dict = cos_client.head_object(
            Bucket=COS_BUCKET,
            Key=key
        )
    except CosServiceError as e:
        logger.error(e.get_origin_msg())
        logger.error(e.get_digest_msg())
        logger.error(e.get_status_code())
        logger.error(e.get_error_code())
        logger.error(e.get_error_msg())
        logger.error(e.get_resource_location())
        logger.error(e.get_trace_id())
        logger.error(e.get_request_id())
    return result_dict
Esempio n. 4
0
def list_objs():
    while True:
        try:
            response = cos_client.list_objects(
                Bucket=COS_BUCKET,
            )
            if 'Contents' not in response.keys():
                logger.error("目前存储桶可能是空的")
                break
            for dict_ in response['Contents']: # [dict,dict,dict ...]
                print(dict_)
            if response['IsTruncated'] == 'false':
                break
        except CosServiceError as e:
            logger.error(e.get_origin_msg())
            logger.error(e.get_digest_msg())
            logger.error(e.get_status_code())
            logger.error(e.get_error_code())
            logger.error(e.get_error_msg())
            logger.error(e.get_resource_location())
            logger.error(e.get_trace_id())
            logger.error(e.get_request_id())
            break
Esempio n. 5
0
import numpy as np
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
from qcloud_cos import CosServiceError
from qcloud_cos import CosClientError
from fddeye.tools import logger
from io import BytesIO
from fddeye.config import *


try:
    config = CosConfig(Region=COS_REGION, SecretId=COS_SECRET_ID,
       SecretKey=COS_SECRET_KEY, Token=COS_TOKEN)
    cos_client = CosS3Client(config)
except CosClientError as e:
    logger.error(e)



def load_file(file_name,local=False):
    if local:
        load_local_file(file_name)
    else:
        with open(file_name, 'rb') as fp:
            response = cos_client.put_object(
                Bucket=COS_BUCKET,
                Body=fp,
                Key=file_name,
                StorageClass='STANDARD',
                ContentType='text/html; charset=utf-8',
                Metadata={