php - 关于触发异步处理{"error":"bad token"}
天蓬老师
天蓬老师 2017-04-10 14:36:51
[PHP讨论组]
//代码是这样的,我要异步处理图片持久化 
function makeUrl($url,$bucket,$savekey,$ak="KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR",$sk="D-K57TE5hPe3krexftxLWFKmL2xbQEKA-mtkrUfB"){
    $find = array('+', '/');
    $replace = array('-', '_');
    $encode = str_replace($find,$replace,base64_encode("$bucket:$savekey"));
    $url    = $url."|saveas/".$encode;
    $sha1   = hash_hmac('sha1',$url,$sk,true);
    $sign   = $ak.":".(str_replace($find,$replace,base64_encode($sha1)));
    $data   = $url."/sign/".$sign;
    return $data;
}

echo makeUrl("gitwiduu.u.qiniudn.com/weidu.png?imageView/2/w/200/h/200","gitwiduu","widuu.png");
//输出url是

gitwiduu.u.qiniudn.com/weidu.png?imageView/2/w/200/h/200|saveas/Z2l0d2lkdXU6d2lkdXUucG5n/sign/KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR:oLnyNAFkj7gs6a0LyLJ581bCS_Q=

//然后拼接params
//bucket=gitwiduu&key=weidu.png&fops=imageView/2/w/200/h/200;saveas/Z2l0d2lkdXU6d2lkdXUucG5n/sign/KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR:oLnyNAFkj7gs6a0LyLJ581bCS_Q=&notifyURL=http://localhost/
function url_safe_baseencode($str) // URLSafeBase64Encode
{
    $find = array('+', '/');
    $replace = array('-', '_');
    return str_replace($find, $replace, base64_encode($str));
}


function sign1($data,$ak="KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR",$sk="D-K57TE5hPe3krexftxLWFKmL2xbQEKA-mtkrUfB"){
    $sign = hash_hmac('sha1', $data, $sk, true);
    return $ak.':'.url_safe_baseencode($sign);
}

//根据官方文档path?query\nbody 加密输出结果

echo sign1("/pfop\nbucket=gitwiduu&key=weidu.png&fops=imageView/2/w/200/h/200;saveas/Z2l0d2lkdXU6d2lkdXUucG5n/sign/KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR:oLnyNAFkj7gs6a0LyLJ581bCS_Q=&notifyURL=http://localhost/");
//获取Authorization token
//输出 token 是 KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR:8nodNoJ7A8QE59UNrlMXSs-2ATY=
然后php curl 实验不行 然后在linux下实验
curl -d "bucket=gitwiduu&key=weidu.png&fops=imageView/2/w/200/h/200;saveas/Z2l0d2lkdXU6d2lkdXUucG5n/sign/KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR:oLnyNAFkj7gs6a0LyLJ581bCS_Q=&notifyURL=http://localhost/" -H  "Content-Type: application/x-www-form-urlencoded" -H "Authorization: QBox KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ijDH4uOR:8nodNoJ7A8QE59UNrlMXSs-2ATY=" http://api.qiniu.com/pfop
//或者到 http://api.qiniu.com/pfop/ 都是返回json出现{"error":"bad token"}" 请问一下哪里出的错误呀 
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
大家讲道理

1、手动触发的persistentOps持久化可以参考: http://segmentfault.com/q/1010000000331820
2、实际你的需求不需要用到持久化,saveas就可以了。看了一下,得到的saveas的url是正确的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号