以下是代码,我在浏览器访问返回的url,返回 {"code":4100,"message":"\u8eab\u4efd\u8ba4\u8bc1\u5931\u8d25\uff0c\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u5931\u8d25","codeDesc":"AuthFailure"}
请求帮助!!!!
@RequestMapping("/mediaProcess")
@ResponseBody
public String mediaProcess(@RequestParam String fileId)throws Exception{
TreeMap<String, Object> params =newTreeMap<String, Object>();// TreeMap可以自动排序 params.put("Action","CreateSnapshotByTimeOffset");// 公共参数 params.put("Nonce",newRandom().nextInt(java.lang.Integer.MAX_VALUE));// 公共参数
params.put("Timestamp", System.currentTimeMillis()/1000);// 公共参数
params.put("Version","2018-07-17");// 公共参数
params.put("Region","ap-beijing");// 公共参数
params.put("SecretId", FrontendPropertyConfigurer.getValue("showSecretId"));// 公共参数
params.put("definition",10);
params.put("FileId",fileId);
params.put("timeOffset.0",1);
String sign =sign(getStringToSign(params), FrontendPropertyConfigurer.getValue("showSecretKey"),"HmacSHA1"); params.put("Signature", sign);// 公共参数
String url =getUrl(params);
return url;
}
privatefinalstatic String CHARSET ="UTF-8";
publicstatic String sign(String s, String key, String method)throws Exception {
Mac mac = Mac.getInstance(method);
SecretKeySpec secretKeySpec =newSecretKeySpec(key.getBytes(CHARSET),
mac.getAlgorithm());
mac.init(secretKeySpec);
byte[] hash = mac.doFinal(s.getBytes(CHARSET));
return DatatypeConverter.printBase64Binary(hash);
}
publicstatic String getStringToSign(TreeMap<String, Object> params){
StringBuilder s2s =newStringBuilder("GETcvm.tencentcloudapi.com/?");
for(String k : params.keySet()){
s2s.append(k).append("=").append(params.get(k).toString()).append("&");
}
return s2s.toString().substring(0, s2s.length()-1);
}
publicstatic String getUrl(TreeMap<String, Object> params)throws UnsupportedEncodingException {
StringBuilder url =newStringBuilder("https://vod.api.qcloud.com/v2/index.php?");
for(String k : params.keySet()){
url.append(k).append("=").append(URLEncoder.encode(params.get(k).toString(), CHARSET)).append("&");
}
return url.toString().substring(0, url.length()-1);
}
相似问题