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 = "http://mts.cn-shanghai.aliyuncs.com/?";那么"Location"=>"oss-cn-shanghai".这里面都有shanghai这个区域.

转载于:https://blog.51cto.com/suyanzhu/1868816

ali 媒体转码签名生成-php相关推荐

  1. php+rsa生成签名sign,PHP 做 RSA 签名 生成订单(支付宝例子)

    /组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的16 ...

  2. 阿里云媒体转码MTS使用教程

    什么是媒体处理? 媒体处理(ApsaraVideo for Media Processing,原MTS)是一种多媒体数据处理服务.它以经济.弹性和高可扩展的音视频转换方法,帮助您将存储于OSS的音视频 ...

  3. 阿里媒体转码公共参数_Xuggler教程:转码和媒体修改

    阿里媒体转码公共参数 注意:这是我们的" Xuggler开发教程 "系列的一部分. 在上一教程中,我对视频处理Xuggler进行了简短介绍 . 在这一部分中,我们将看到Xuggle ...

  4. 微信公众号二维码怎么生成?好用的生成方法介绍

    微信公众号二维码怎么生成?从事新媒体行业的小伙伴们应该都对微信公众号不陌生吧,公众号是一个企业对外宣传的重要方式之一.通常情况下我们都会将公众号的二维码放置在文章的文末.以便于读者扫码关注公众号.那么 ...

  5. android 10.0 在系统源码下生成jks系统签名文件

    在系统开发中,会遇到在app在线升级的时候,会升级失败,由于app自己用自己的签名文件签名的 所以会和系统签名文件不一样,导致会出现一些问题 所以为了解决这一个问题 就得使用系统生成的签名文件 给ap ...

  6. PHP签名生成的通用步骤

    签名生成的通用步骤如下 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&k ...

  7. [微信]微信JS-SDK权限签名生成及验证

    目录 一.获取access_token 二.获取jsapi_ticket 三.拼接参数,SHA-1加密获取签名 四.验证签名 在使用微信的分享.图片等众多功能时,通常需要在config接口注入权限验证 ...

  8. 支付宝签名php,PHP实现RSA签名生成订单功能【支付宝示例】

    PHP实现RSA签名生成订单功能[支付宝示例] 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  PHP实现RSA签名生成订单功能[支付宝示例].txt ] (友情提 ...

  9. python 工行e企付、工行签名生成、工行私钥PKCS8转PKCS1例子

    工行有java.python.C#的SDK,项目是用python写的,遇到的坑先列举起来 1.工行给的私钥是PKCS8格式,这个是java专用的,其他语言需要转为PKCS1格式,推荐网上是链接: 在线 ...

  10. 关于Unity调用摄像头扫描二维码与生成二维码的实现方法

    1.常用的生成二维码网址 https://cli.im/ 2.上官网下载二维码插件 http://zxingnet.codeplex.com/ 3.将下载的插件中zxing.unity.dll文件放入 ...

最新文章

  1. 【人物】乔布斯:A级人才的自尊心不需要你呵护
  2. python教程:列表(list)、元组(tuple)、字典(dict)
  3. linux挂载固硬盘装,linux下安装新硬盘并挂载mount
  4. Java黑皮书课后题第2章:2.9(物理:加速度)平均加速度定义为速度的变化量除以这个变化所用的时间,编写程序,提示用户输入以米/秒为单位的起始速度v0,以米/秒为单位的终止速度v1,显示平均加速度
  5. spark中各类key算子的用法汇总(持续更新中)
  6. captcha库_将CAPTCHA添加到您的GWT应用程序
  7. 双非计算机考研推荐学校传菜电梯,22考研双非院校排名Top100,前3名竟然是这几所!...
  8. 怎么设置服务器上的文件夹密码,文件服务器怎么设置文件夹密码
  9. Struts2学习笔记(八) 拦截器(Interceptor)(上)
  10. jquery淡入淡出效果及突出显示案例
  11. kafka事务操作案例演示
  12. CNBlog客户端--第一阶段记录
  13. 能力提升综合题单 Part 8.7 图的连通性相关
  14. linux 命令学习
  15. 浪潮服务器系统驱动,浪潮英信服务器驱动(最新更新)浪潮网卡驱动
  16. ssh框架 mysql 配置文件_SSH框架与配置文件的简单搭建
  17. C语言小游戏,笑傲江湖之鸿蒙
  18. css动画走马灯5秒,用animation制作走马灯
  19. vue 使用Dialog对话框使用过程中出现灰色遮罩问题
  20. ansible playbook详细教程(笔记)

热门文章

  1. sql 查出一张表中重复的所有记录数据并且删除
  2. ElasticSearch安装分词插件IK
  3. Xcode和macOS对应关系查询网址
  4. 文字处理技术:完成了对表格的布局处理
  5. WINDOWS10经常莫名其妙的卡死一会
  6. 糙哥、糙姐:指为了解决问题,随意调整参数的程序员
  7. LINUX下载编译libc(glibc)
  8. LINUX C# 加载本地库的范例代码
  9. 共享单车为什么这么重?
  10. 对我有利就契约,不利就废纸