search

Home  >  Q&A  >  body text

PHP 怎么设置过期时间?

我是在官方例子看到的代码

$getPolicy = new Qiniu_RS_GetPolicy();
$privateUrl = $getPolicy->MakeRequest($baseUrl, null);

这里的 null 是个什么参数?
官方的API 感觉很不详细。

PHP中文网PHP中文网2817 days ago400

reply all(2)I'll reply

  • 阿神

    阿神2017-04-10 14:45:36

    为什么不看源码

    <?php
    class Qiniu_RS_GetPolicy
    {
        public $Expires;
    
        public function MakeRequest($baseUrl, $mac) // => $privateUrl
        {
            $deadline = $this->Expires;
            if ($deadline == 0) {
                $deadline = 3600;
            }
            $deadline += time();
    
            $pos = strpos($baseUrl, '?');
            if ($pos !== false) {
                $baseUrl .= '&e=';
            } else {
                $baseUrl .= '?e=';
            }
            $baseUrl .= $deadline;
    
            $token = Qiniu_Sign($mac, $baseUrl);
            return "$baseUrl&token=$token";
        }
    }
    
    <?php
    function Qiniu_RequireMac($mac) // => $mac
    {
        if (isset($mac)) {
            return $mac;
        }
    
        global $QINIU_ACCESS_KEY;
        global $QINIU_SECRET_KEY;
    
        return new Qiniu_Mac($QINIU_ACCESS_KEY, $QINIU_SECRET_KEY);
    }
    

    如果mac不为null,则直接返回mac。
    比如:

    <?php
    
    echo Qiniu_Sign('abc',$baseurl);
    // 会输出abc   而不是hash后的sign
    

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:45:36

    七牛官方的 PHP SDK 很难用,还是看看这个吧:https://github.com/hfcorriez/php-qiniu

    reply
    0
  • Cancelreply