ali 媒体转码签名生成-php
admin
2023-06-21 07:22:18
0次

1.封装函数

function composeUrl($AccessKeyId,$Format,$SignatureMethod,$SignatureVersion,$TimeFormat,$ActionName,$Version,$InputJson,$AccessSecret){

        $apiParams = array();

        $apiParams["AccessKeyId"] = $AccessKeyId;

        $apiParams["Format"] = $Format;

        $apiParams["SignatureMethod"] = $SignatureMethod;

        $apiParams["SignatureVersion"] = $SignatureVersion;

        $apiParams["SignatureNonce"] = uniqid();

        date_default_timezone_set("GMT");

        $apiParams["Timestamp"] = date($TimeFormat);

        $apiParams["Action"] = $ActionName;

        $apiParams["Version"] = $Version;

        $apiParams["Input"]= $InputJson;

        $apiParams["Signature"] = util::computeSignature($apiParams, $AccessSecret, $apiParams);


        $requestUrl = "http://mts.cn-shanghai.aliyuncs.com/?";


        foreach ($apiParams as $apiParamKey => $apiParamValue){

            $requestUrl .= "$apiParamKey=" . urlencode($apiParamValue) . "&";

        }

        return substr($requestUrl, 0, -1);

}



function computeSignature($parameters, $accessKeySecret, $iSigner){

        ksort($parameters);

        $canonicalizedQueryString = '';

        foreach($parameters as $key => $value){

            $canonicalizedQueryString .= '&' . util::percentEncode($key). '=' . util::percentEncode($value);

        }

        $stringToSign = 'GET&%2F&' . util::percentencode(substr($canonicalizedQueryString, 1));

        $signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret."&", true));


        return $signature;

}



function percentEncode($str){

        $res = urlencode($str);

        $res = preg_replace('/\+/', '%20', $res);

        $res = preg_replace('/\*/', '%2A', $res);

        $res = preg_replace('/%7E/', '~', $res);

        return $res;

}



2.调用函数并请求

$TimeFormat = 'Y-m-d\TH:i:s\Z';

$Format= 'JSON';

$Version = '2014-06-18';

$AccessKeyId = 'xxxxxxxxxxxxxxxx';//替换为你们在ali申请的Access Key ID

$AccessSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';//替换为你们在ali申请的Access Key Secret

$SignatureMethod = 'Hmac-SHA1';

$SignatureVersion = '1.0';

$ActionName = 'SubmitMediaInfoJob';

$InputJson = json_encode(array("Bucket"=>"test-2-20161024","Location"=>"oss-cn-shanghai","Object"=>"user-dir/avi.avi"));


$SubmitMediaInfoJobRequest = util::composeUrl($AccessKeyId,$Format,$SignatureMethod,$SignatureVersion,$TimeFormat,$ActionName,$Version,$InputJson,$AccessSecret);


print_r($SubmitMediaInfoJobRequest);


3.根据第2步生成的链接,直接复制到地址中进行请求即可看到结果.



4.注意:

   a.在步骤1的composeUrl函数中的requestUrl这个变量,需要与步骤2的转递参数Location中的所在区域操持一致,比如:$requestUrl = ""oss-cn-shanghai".这里面都有shanghai这个区域.">http://mts.cn-shanghai.aliyuncs.com/?";那么"Location"=>"oss-cn-shanghai".这里面都有shanghai这个区域.

ali 媒体转码签名生成-php

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...