php获取Token版本
参考资料里的脚本 报错 invalid put policy encoding 度娘后得知是$putPolicy应为json格式
<?php
function urlsafe_b64encode($string)
{
$data = base64_encode($string);
$data = str_replace(array('+', '/'), array('-', '_', ''), $data);
return $data;
}
$accessKey = '***';
$secretKey = '***';
$bucket = '***';
$deadline = time() + 3600;
$putPolicy = array(
'scope' => $bucket,
'deadline' => $deadline
);
$encodedPutPolicy = urlsafe_b64encode(json_encode($putPolicy));
$sign = hash_hmac('sha1', $encodedPutPolicy, $secretKey, true);
$encodedSign = urlsafe_b64encode($sign);
$uploadToken = $accessKey . ':' . $encodedSign . ':' . $encodedPutPolicy;
echo "uploadToken: " . $uploadToken . "\n";
autojs获取Token和上传示例
function urlsafe_b64encode($string) {
$data = $base64.encode($string);
$data = $data.replace("/(\+|\/)/g", '_');
return $data;
}
$accessKey = '***';
$secretKey = '***';
$bucket = '***';
$deadline = new Date().getTime() + 3600;
$putPolicy = { "scope": $bucket, "deadline": $deadline };
$encodedPutPolicy = urlsafe_b64encode(JSON.stringify($putPolicy));
eval(http.get("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js").body.string())
$sign = CryptoJS.HmacSHA1($encodedPutPolicy, $secretKey);
$encodedSign = CryptoJS.enc.Base64.stringify($sign);
$encodedSign = $encodedSign.replace("/(\+|\/)/g", '_');
$uploadToken = $accessKey + ':' + $encodedSign + ':' + $encodedPutPolicy;
log("uploadToken: " + $uploadToken + "\n")
$actionPath = "https://upload-z2.qiniup.com"
$outerChain = "***"
$filePath = files.getSdcardPath() + "/2.png"
$fileName = new Date().getTime() + files.getName($filePath)
let $res =
http.postMultipart($actionPath, {
token: $uploadToken,
file: [$fileName, $filePath],
key: $fileName
})
$res.statusCode == 200 ?
log($outerChain + $fileName) : log($res.body.json())