74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
import base64
 | 
						|
import hashlib
 | 
						|
import hmac
 | 
						|
import json
 | 
						|
import random
 | 
						|
import time
 | 
						|
 | 
						|
from rest_framework.response import Response
 | 
						|
from rest_framework.status import HTTP_400_BAD_REQUEST
 | 
						|
from tencentcloud.common import credential
 | 
						|
from tencentcloud.common.exception.tencent_cloud_sdk_exception import \
 | 
						|
    TencentCloudSDKException
 | 
						|
from tencentcloud.common.profile.client_profile import ClientProfile
 | 
						|
from tencentcloud.common.profile.http_profile import HttpProfile
 | 
						|
from tencentcloud.vod.v20180717 import models, vod_client
 | 
						|
 | 
						|
SecretId = 'AKIDhDTaV9WeXAXcQxEH4buwg9LGvJQHr9Au'
 | 
						|
SecretKey = 'VjfKjrhGYrte8MIxMUMxHL9h39zYqrc6'
 | 
						|
 | 
						|
# 初始化点播client
 | 
						|
def initClient():
 | 
						|
    cred = credential.Credential(SecretId, SecretKey) 
 | 
						|
    httpProfile = HttpProfile()
 | 
						|
    httpProfile.endpoint = "vod.tencentcloudapi.com"
 | 
						|
    clientProfile = ClientProfile()
 | 
						|
    clientProfile.httpProfile = httpProfile
 | 
						|
    client = vod_client.VodClient(cred, "", clientProfile) 
 | 
						|
    return client
 | 
						|
 | 
						|
def doResponse(res):
 | 
						|
    # 处理返回结果
 | 
						|
    # 转变为常用返回Response
 | 
						|
    if hasattr(res, 'Error'):
 | 
						|
        return Response(res._serialize(allow_none=True), status=HTTP_400_BAD_REQUEST)
 | 
						|
    return Response(res._serialize(allow_none=True))
 | 
						|
 | 
						|
def getAllClass(params={}):
 | 
						|
    # 获取所有分类
 | 
						|
    try: 
 | 
						|
        client = initClient()
 | 
						|
        req = models.DescribeAllClassRequest()
 | 
						|
        req.from_json_string(json.dumps(params))
 | 
						|
        resp = client.DescribeAllClass(req) 
 | 
						|
        return doResponse(resp)
 | 
						|
    except TencentCloudSDKException as err: 
 | 
						|
        print(err) 
 | 
						|
 | 
						|
def searchMedia(params={}):
 | 
						|
    try: 
 | 
						|
        client = initClient()
 | 
						|
        req = models.SearchMediaRequest()
 | 
						|
        req.from_json_string(json.dumps(params))
 | 
						|
        resp = client.SearchMedia(req) 
 | 
						|
        return doResponse(resp)
 | 
						|
    except TencentCloudSDKException as err: 
 | 
						|
        print(err)
 | 
						|
 | 
						|
def getSignature(procedure=None):
 | 
						|
    """
 | 
						|
    获取上传签名
 | 
						|
    可指定
 | 
						|
    """
 | 
						|
    TimeStamp = int(time.time())
 | 
						|
    ExpireTime = TimeStamp + 86400 * 365 * 10
 | 
						|
    Random = random.randint(0, 999999)
 | 
						|
    Original = "secretId=" + SecretId + "¤tTimeStamp=" + str(TimeStamp) + "&expireTime=" + str(ExpireTime) + "&random=" + str(Random)
 | 
						|
    if procedure:
 | 
						|
        Original = Original + "&procedure="+procedure
 | 
						|
    Hmac = hmac.new(bytes(SecretKey, 'utf-8'), bytes(Original, 'utf-8'), hashlib.sha1)
 | 
						|
    Sha1 = Hmac.digest()
 | 
						|
    Signature = bytes(Sha1) + bytes(Original, 'utf-8')
 | 
						|
    Signature2 = base64.b64encode(Signature)
 | 
						|
    return str(Signature2, 'UTF-8')
 |