Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion qcloud_cos/cos_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,12 +138,13 @@ def __call__(self, r):

class CosRtmpAuth(AuthBase):

def __init__(self, conf, bucket=None, channel=None, params={}, expire=10000):
def __init__(self, conf, bucket=None, channel=None, params={}, expire=3600, presign_expire=0):
self._secret_id = conf._secret_id
self._secret_key = conf._secret_key
self._token = conf._token
self._anonymous = conf._anonymous
self._expire = expire
self._presign_expire = presign_expire
self._params = params
if self._token:
self._params['q-token'] = self._token
Expand All @@ -154,6 +155,8 @@ def get_rtmp_sign(self):
canonicalized_param = ''
for k, v in self._params.iteritems():
canonicalized_param += '{key}={value}&'.format(key=k, value=v)
if self._presign_expire >= 60:
canonicalized_param += 'presign={value}'.format(value=self._presign_expire)
canonicalized_param = canonicalized_param.rstrip('&')
rtmp_str = u"{path}\n{params}\n".format(path=self._path, params=canonicalized_param)
logger.debug("rtmp str: " + rtmp_str)
Expand Down
5 changes: 3 additions & 2 deletions qcloud_cos/cos_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3857,12 +3857,13 @@ def get_async_fetch_task(self, Bucket, TaskId, **kwargs):
data = rt.json()
return data

def put_live_channel(self, Bucket, ChannelName, Expire=3600, LiveChannelConfiguration={}, **kwargs):
def put_live_channel(self, Bucket, ChannelName, Expire=3600, PreSignExpire=0, LiveChannelConfiguration={}, **kwargs):
"""创建直播通道

:param Bucket(string): 存储桶名称.
:param ChannelName(string): 直播通道名称.
:param Expire(int): 推流url签名过期时间.
:param PreSignExpire(int): playlist中ts分片签名的过期时间,合法值[60,43200],默认为0,不开启该签名.
:param LiveChannelConfiguration(dict): 直播通道配置.
:param kwargs(dict): 设置请求headers.
:return(dict): publish url and playurl.
Expand Down Expand Up @@ -3900,7 +3901,7 @@ def put_live_channel(self, Bucket, ChannelName, Expire=3600, LiveChannelConfigur
params=params)
data = xml_to_dict(rt.content)
if data['PublishUrls']['Url'] is not None:
rtmpSign = CosRtmpAuth(self._conf, bucket=Bucket, channel=ChannelName, expire=Expire)
rtmpSign = CosRtmpAuth(self._conf, bucket=Bucket, channel=ChannelName, expire=Expire, presign_expire=PreSignExpire)
url = data['PublishUrls']['Url']
url += '?' + rtmpSign.get_rtmp_sign()
data['PublishUrls']['Url'] = url
Expand Down