> 백엔드 개발 > PHP 튜토리얼 > upyun 刷新缓存的签名不知道哪错了

upyun 刷新缓存的签名不知道哪错了

WBOY
풀어 주다: 2016-06-06 20:34:33
원래의
1078명이 탐색했습니다.

返回的结果是401 Sign error

<code>public function delete($path) {
    //比如http://www.xx.com/a/b.jpg,我传过来删除的就是/a/b.jpg
    //删除部分略过
    //刷新缓存开始
    $ch = curl_init('http://purge.upyun.com/purge/');
    $date = gmdate('D, d M Y H:i:s \G\M\T');

    //这里签名我是直接用的$path,我是怀疑这里错了 但是我试过http://www.xx.com加在前面也还是错误
    $sign = md5($path.'&'.$this->bucket.'&'.$date.'&'.md5($this->password));

    //头信息
    $header = array(
        'Expect: ""',
        'Authorization: UpYun '.$this->config['bucket'].':'.$this->config['username'].':'.$sign,
        'Date: '.$date,
        'Content-Type: application/x-www-form-urlencoded',
    );
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header);

    //POST方式
    curl_setopt($ch,CURLOPT_POST,1);

    //这里也是个问题,我不知道这个要不要提交过去
    $data = array(
        'purge' => urlencode($path),
    );
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data);

    //是否返回头信息
    curl_setopt($ch,CURLOPT_HEADER,1);

    $response = curl_exec($ch);

    $status = curl_getinfo($ch,CURLINFO_HTTP_CODE);
    curl_close($ch);

    //打印结果
    var_dump($response);
}
</code>
로그인 후 복사
로그인 후 복사

回复内容:

返回的结果是401 Sign error

<code>public function delete($path) {
    //比如http://www.xx.com/a/b.jpg,我传过来删除的就是/a/b.jpg
    //删除部分略过
    //刷新缓存开始
    $ch = curl_init('http://purge.upyun.com/purge/');
    $date = gmdate('D, d M Y H:i:s \G\M\T');

    //这里签名我是直接用的$path,我是怀疑这里错了 但是我试过http://www.xx.com加在前面也还是错误
    $sign = md5($path.'&'.$this->bucket.'&'.$date.'&'.md5($this->password));

    //头信息
    $header = array(
        'Expect: ""',
        'Authorization: UpYun '.$this->config['bucket'].':'.$this->config['username'].':'.$sign,
        'Date: '.$date,
        'Content-Type: application/x-www-form-urlencoded',
    );
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header);

    //POST方式
    curl_setopt($ch,CURLOPT_POST,1);

    //这里也是个问题,我不知道这个要不要提交过去
    $data = array(
        'purge' => urlencode($path),
    );
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data);

    //是否返回头信息
    curl_setopt($ch,CURLOPT_HEADER,1);

    $response = curl_exec($ch);

    $status = curl_getinfo($ch,CURLINFO_HTTP_CODE);
    curl_close($ch);

    //打印结果
    var_dump($response);
}
</code>
로그인 후 복사
로그인 후 복사

$path 后面加 \n,类似:http://www.xx.com/a/b.jpg\n

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿