1. 程式人生 > >簡單COS文件上傳測試

簡單COS文件上傳測試

object num bytes 圖片 git text return term -o

一、背景

客戶反饋隨機上傳小文件至cos速度比較慢,用Python來進行測試上傳速度。

二、代碼

#!/bin/env python
# -*- coding:utf-8 -*-
# _auth:kaliarch
# use cos-python-sdk-v5
# https://cloud.tencent.com/document/product/436/12269

from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import random
import string
import datetime

secret_id = ‘AKIDMdjegcmoGYiolXxxxxxxxxxxxxxxxdE‘      # 替換為用戶的 secretId
secret_key = ‘d5MRL4VoxyxxxxxxxxxxxA2lNq7D‘      # 替換為用戶的 secretKey
region = ‘ap-chengdu‘     # 替換為用戶的 Region                 # 使用臨時密鑰需要傳入 Token,默認為空,可不填
scheme = ‘https‘            # 指定使用 http/https 協議來訪問 COS,默認為 https,可不填
bucket_name = ‘xuel-test-bucket-1253961596‘        #制定bucket地址
config = CosConfig(Region=region, Secret_id=secret_id, Secret_key=secret_key,  Scheme=scheme)
# 2. 獲取客戶端對象
client = CosS3Client(config)

def get_data_list(number):
    """
    獲取隨機字符串,number指定數量
    :param number:
    :return:
    """
    for i in range(int(number)):
        random_str = ‘‘.join(random.sample(string.ascii_letters + string.digits, 12))
        yield str(i) + random_str

def get_func_time(func):
    """
    裝飾器函數
    :param func: 計算內層函數執行時間
    :return:
    """
    def inter_func(*args):
        stime = datetime.datetime.now()
        print(‘start datetime:‘, stime)
        func(*args)
        etime = datetime.datetime.now()
        print(‘start datetime:‘, etime)
        print(‘duration time‘, etime - stime)
    return inter_func

@get_func_time
def upload_cos(number=1000):
    """
    cos 文件上傳
    :param number:
    :return:
    """
    print(‘data file number:‘,str(number))
    for content in get_data_list(number):
        response = client.put_object(
            Bucket=bucket_name,
            Body=bytes(content,encoding=‘utf-8‘),
            Key=content,
        )

if __name__ == ‘__main__‘:
    upload_cos(1000)

三、測試

測試500個隨機文件
技術分享圖片
測試1000個隨機文件
技術分享圖片
查看cos文件數據
技術分享圖片

簡單COS文件上傳測試