LiveChannel有两种Status:enabled和disabled,用户可以使用本接口在两种Status之间进行切换。处于disabled状态时,OSS会禁止用户向该LiveChannel进行推流操作;如果有用户正在向该LiveChannel推流,那么推流的客户端会被强制断开(可能会有10s左右的延迟)。
请求语法
PUT /ChannelName?live&status=NewStatus HTTP/1.1Date: GMT dateHost: BucketName.oss-cn-hangzhou.aliyuncs.comAuthorization: SignatureValue
请求参数
名称 | 描述 | 是否必需 |
NewStatus | 指定LiveChannel的目标Status。有效值:enabled、disabled | 是 |
PUT /test-channel?live&status=disabled HTTP/1.1
Date: Thu, 25 Aug 2016 05:37:38 GMT
Host: test-bucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OSS YJjHKOKWDWINLKXv:X/mBrSbkNoqM/JoAfRC0ytyQ5pY=
HTTP/1.1 200
content-length: 0
server: AliyunOSS
connection: close
x-oss-request-id: 57BE8422B92475920B002030
date: Thu, 25 Aug 2016 05:37:39 GMT
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云OSS服务中,管理LiveChannel的状态转换是一项关键操作,主要用于控制音视频数据的实时推流功能。LiveChannel具有两种状态:enabled(启用)和disabled(禁用),通过调用PutLiveChannelStatus
接口,用户能够在两种状态之间灵活切换。
要更改LiveChannel的状态,您需要发起一个PUT请求至特定的URL,格式如下:
PUT /ChannelName?live&status=NewStatus HTTP/1.1
Date: 当前日期时间
Host: BucketName.oss-区域.aliyuncs.com
Authorization: 认证签名值
enabled
以启用LiveChannel,或设置为disabled
以禁用它。disabled
时,所有向该通道的推流操作将被禁止。如果当前有推流正在进行,客户端连接会在大约10秒后被强制断开。enabled
和disabled
状态间切换。若存在活跃推流,仅允许将状态改为disabled
。以下是一个具体的请求示例,展示如何将名为test-channel
的LiveChannel状态更改为disabled
:
PUT /test-channel?live&status=disabled HTTP/1.1
Date: Tue, 25 Dec 2018 17:35:24 GMT
Host: test-bucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OSS qn6q**************:77Dv****************
成功执行此操作后,您会收到HTTP 200响应,表示状态更新成功。
如果您使用的是Node.js SDK,可以参考以下代码片段来实现创建及配置LiveChannel,虽然这个例子不直接涉及状态切换,但它展示了如何通过编程方式与LiveChannel交互:
const OSS = require('ali-oss');
const client = new OSS({
region: '<YourRegion>',
accessKeyId: '<YourAccessKeyId>',
accessKeySecret: '<YourAccessKeySecret>',
bucket: '<YourBucketName>',
});
const channelConfig = {
Description: 'Channel description',
Status: 'enabled', // 或者 'disabled'
Target: {
Type: 'HLS',
FragDuration: '10',
FragCount: '5',
PlaylistName: 'playlist.m3u8',
},
};
client.putChannel('<YourChannelName>', channelConfig)
.then(result => console.log('LiveChannel created successfully:', result))
.catch(err => console.log('Failed to create LiveChannel:', err));
请根据实际需求调整上述代码中的占位符内容。
通过以上步骤和注意事项,您可以有效地管理和控制OSS LiveChannel的状态,确保实时音视频推流服务的顺畅运行。