直播app开发之腾讯云存储上传文件前验证联合身份临时访问凭证
现在做直播app开发项目时都会遇到文件存储的问题,文件存储的解决办法也有很多种,比如存本地服务器、ftp服务器存储、云存储等,目前方便大型网站进行上传文件管理的当数云存储了,云存储的好处就是方便文件归类,可视化界面,操作方便等,国内或国外各大网络运营商也都退出了自己的云存储,如:阿里云存储、七牛云存储、腾讯云存储、华为云存储、谷歌云存储等等。下面,来分享一下目前国内常用的腾讯云存储在进行文件上传.
现在做直播app开发项目时都会遇到文件存储的问题,文件存储的解决办法也有很多种,比如存本地服务器、ftp服务器存储、云存储等,目前方便大型网站进行上传文件管理的当数云存储了,云存储的好处就是方便文件归类,可视化界面,操作方便等,国内或国外各大网络运营商也都退出了自己的云存储,如:阿里云存储、七牛云存储、腾讯云存储、华为云存储、谷歌云存储等等。
下面,来分享一下目前国内常用的腾讯云存储在进行文件上传前进行临时身份认证的问题。临时身份认证是在进行文件上传前的身份签名,如果身份签名错误,腾讯云会认为是非法访问,将会拒接文件的上传请求。
参考文档:https://cloud.tencent.com/document/product/598/13896
结合官方的参考文档,我们对临时凭证的生成进行了方法的封装,如下:
public function getTxCosFederationToken(){
$rs=array('code'=>0,"msg"=>"","info"=>array());
require_once(API_ROOT.'/../sdk/tencentSts/sts/sts.php'); //根据自己的文件引入路径自行修改
$sts = new STS();
$config = array(
'url' => 'https://sts.tencentcloudapi.com/',
'domain' => 'sts.tencentcloudapi.com',
'proxy' => '',
'secretId' => '', // secretid密钥
'secretKey' => '', // secretkey
'bucket' => '', // bucket-appid,如:ceshi-1255549201
'region' => '', // 换成 bucket 所在地区 如ap-shanghai
'durationSeconds' => 1800,
'allowPrefix' => '*',
'allowActions' => array (
// 简单上传
'name/cos:PutObject',
'name/cos:PostObject',
// 分片上传
'name/cos:InitiateMultipartUpload',
'name/cos:ListMultipartUploads',
'name/cos:ListParts',
'name/cos:UploadPart',
'name/cos:CompleteMultipartUpload'
)
);
// 获取临时密钥,计算签名
$tempKeys = $sts->getTempKeys($config);
$info['sessionToken']=$tempKeys['credentials']['sessionToken'];
$info['tmpSecretId']=$tempKeys['credentials']['tmpSecretId'];
$info['tmpSecretKey']=$tempKeys['credentials']['tmpSecretKey'];
$info['requestId']=$tempKeys['requestId'];
$info['expiredTime']=(string)$tempKeys['expiredTime'];
$rs['info'][0]=$info;
return $rs;
}
此封装方法是php版本,只需将方法中的sts.php 引用文件路径稍作修改即可使用,方法中需要传递的参数要使用正确的腾讯云对象存储相关参数才行。
以上就是在直播app开发时,关于腾讯云存储临时身份签名的封装方法,有问题欢迎留言讨论。
声明:本文由作者原创,转载请注明出处及原文链接。
更多推荐










所有评论(0)