BaiduBCS::format_signature PHP Method

format_signature() private method

生成签名
private format_signature ( array $opt ) : boolean | string
$opt array
return boolean | string
    private function format_signature($opt)
    {
        $flags = "";
        $content = '';
        if (!isset($opt[self::AK]) || !isset($opt[self::SK])) {
            trigger_error('ak or sk is not in the array when create factor!');
            return false;
        }
        if (isset($opt[self::BUCKET]) && isset($opt[self::METHOD]) && isset($opt[self::OBJECT])) {
            $flags .= 'MBO';
            $content .= "Method=" . $opt[self::METHOD] . "\n";
            //method
            $content .= "Bucket=" . $opt[self::BUCKET] . "\n";
            //bucket
            $content .= "Object=" . self::trimUrl($opt[self::OBJECT]) . "\n";
            //object
        } else {
            trigger_error('bucket、method and object cann`t be NULL!');
            return false;
        }
        if (isset($opt['ip'])) {
            $flags .= 'I';
            $content .= "Ip=" . $opt['ip'] . "\n";
        }
        if (isset($opt['time'])) {
            $flags .= 'T';
            $content .= "Time=" . $opt['time'] . "\n";
        }
        if (isset($opt['size'])) {
            $flags .= 'S';
            $content .= "Size=" . $opt['size'] . "\n";
        }
        $content = $flags . "\n" . $content;
        $sign = base64_encode(hash_hmac('sha1', $content, $opt[self::SK], true));
        return 'sign=' . $flags . ':' . $opt[self::AK] . ':' . urlencode($sign);
    }