业务场景
针对对象存储OSS私有bucket权限的使用场景,每个object都需要生成一次签名URL。针对m3u8的索引文件,索引里的每一个ts都需要生成一次签名地址。
普通的带签名的m3u8地址,ts是没有签名的。
那么播放器请求的时候,请求到ts时,就会抛出403签名的权限报错。
解决方法
1、官网提供了签名URL的生成方法以及demo
https://help.aliyun.com/document_detail/100670.html?spm=a2c4g.11186623.6.659.181165d3h56PAa
2、通过官网的方法,在header中添加上x-oss-process=hls/sign处理即可。
demo例子:(Java)
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = "";
String accessKeySecret = "";
String bucketName = "";
String objectName = "";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 设置图片处理样式。
String style = "hls/sign";
// 指定过期时间为10分钟。
Date expiration = new Date(new Date().getTime() + 1000 60 10 );
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
req.setExpiration(expiration);
req.setProcess(style);
URL signedUrl = ossClient.generatePresignedUrl(req);
System.out.println(signedUrl);
// 关闭OSSClient。
ossClient.shutdown();
最终输出的地址上的ts是带上签名的。
相关文章
- 07-24Vue实现阿里云oss文件上传(服务端签名后直传)
- 07-24android对应用进行签名(生成签名文件秘钥key)
- 07-24利用android studio 生成 JNI需要的动态库so文件
- 07-24QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题
- 07-24生成签名的APK文件
- 07-24JDK动态代理[4]----ProxyGenerator生成代理类的字节码文件解析
- 07-24如何使用 Python 或 Bash动态生成 Jekyll 配置文件
- 07-24如何使用 Python 或 Bash动态生成 Jekyll 配置文件
- 07-24android studio如何生成签名文件,以及SHA1和MD5值
- 07-24MAC下 生成安卓签名证书.keystore文件【详细】