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 = 'AKIDa8RTEiwsYw4uTlpc8NL2SbS2MO9droUu'
 | |
| SecretKey = 'A3f04oHTO1NSGn20Xpqa2D8l8D2aqpXy'
 | |
| 
 | |
| # 初始化点播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')
 |