七牛处理结果另存为(saveas)报错

我想把一个空间上的图片进行剪裁处理后存入另一个空间,并且重命名,代码如下:

function picture_crop()
{
    //数据初始化
    $cut_width = xxx;
    $cut_height = xxx;
    ...

    $crop_param = '?imageMogr2/auto-orient/crop/!' . $cut_width . 'x' . $cut_height . 'a' . $cut_x . 'a' . $cut_y;

    //将处理结果另存为
    $entryURI = 'other_bucket:'.$key;
    $encodeEntryURI = Qiniu_Encode($entryURI);

    Qiniu_SetKeys(ACCESS_KEY, SECRET_KEY);
    $mac = new Qiniu_Mac(ACCESS_KEY, SECRET_KEY);
    $sign_data = 'my_bucket'.$key.$crop_param.'|saveas/'.$encodeEntryURI;
    $Sign = $mac->Sign($sign_data);

    $final_url = $sign_data.'/sign/'.$Sign;
    return $final_url;
}

把返回的url在浏览器里输入后,返回的结果是"error": "verify the sign failed",请问下是哪里出了问题,谢谢!

阅读 3.9k
1 个回答

仔细看文档啊!处理结果另存为

$sign_data = 'my_bucket'.$key.$crop_param.'|saveas/'.$encodeEntryURI;

签名的内容应该包括原空间的host部分,你漏了.qiniudn.com,所以应该是

//$sign_data ='my_bucket.qiniudn.com/'.$key.$crop_param.'|saveas/'.$encodeEntryURI;

还有,final_url也是这个问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进