Skip to content

Commit ef6ea8b

Browse files
author
jackyding
committed
add presign
1 parent 6b33549 commit ef6ea8b

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

qcloud_cos/cos_auth.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,13 @@ def __call__(self, r):
138138

139139
class CosRtmpAuth(AuthBase):
140140

141-
def __init__(self, conf, bucket=None, channel=None, params={}, expire=10000):
141+
def __init__(self, conf, bucket=None, channel=None, params={}, expire=3600, presign_expire=0):
142142
self._secret_id = conf._secret_id
143143
self._secret_key = conf._secret_key
144144
self._token = conf._token
145145
self._anonymous = conf._anonymous
146146
self._expire = expire
147+
self._presign_expire = presign_expire
147148
self._params = params
148149
if self._token:
149150
self._params['q-token'] = self._token
@@ -154,6 +155,8 @@ def get_rtmp_sign(self):
154155
canonicalized_param = ''
155156
for k, v in self._params.iteritems():
156157
canonicalized_param += '{key}={value}&'.format(key=k, value=v)
158+
if self._presign_expire >= 60:
159+
canonicalized_param += 'presign={value}'.format(value=self._presign_expire)
157160
canonicalized_param = canonicalized_param.rstrip('&')
158161
rtmp_str = u"{path}\n{params}\n".format(path=self._path, params=canonicalized_param)
159162
logger.debug("rtmp str: " + rtmp_str)

qcloud_cos/cos_client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3857,12 +3857,13 @@ def get_async_fetch_task(self, Bucket, TaskId, **kwargs):
38573857
data = rt.json()
38583858
return data
38593859

3860-
def put_live_channel(self, Bucket, ChannelName, Expire=3600, LiveChannelConfiguration={}, **kwargs):
3860+
def put_live_channel(self, Bucket, ChannelName, Expire=3600, PreSignExpire=0, LiveChannelConfiguration={}, **kwargs):
38613861
"""创建直播通道
38623862
38633863
:param Bucket(string): 存储桶名称.
38643864
:param ChannelName(string): 直播通道名称.
38653865
:param Expire(int): 推流url签名过期时间.
3866+
:param PreSignExpire(int): playlist中ts分片签名的过期时间,合法值[60,43200],默认为0,不开启该签名.
38663867
:param LiveChannelConfiguration(dict): 直播通道配置.
38673868
:param kwargs(dict): 设置请求headers.
38683869
:return(dict): publish url and playurl.
@@ -3900,7 +3901,7 @@ def put_live_channel(self, Bucket, ChannelName, Expire=3600, LiveChannelConfigur
39003901
params=params)
39013902
data = xml_to_dict(rt.content)
39023903
if data['PublishUrls']['Url'] is not None:
3903-
rtmpSign = CosRtmpAuth(self._conf, bucket=Bucket, channel=ChannelName, expire=Expire)
3904+
rtmpSign = CosRtmpAuth(self._conf, bucket=Bucket, channel=ChannelName, expire=Expire, presign_expire=PreSignExpire)
39043905
url = data['PublishUrls']['Url']
39053906
url += '?' + rtmpSign.get_rtmp_sign()
39063907
data['PublishUrls']['Url'] = url

0 commit comments

Comments
 (0)