腾讯对象储存提供了一种简单的图片压缩接口以便节省网站带宽,为了成功使用,开启后还得对cos相关插件做一些小改变以实现对接口的正确调用,这里拿cosUploadV5举例子

在插件配置好的情况下,修改插件代码里的 attachmentHandle 方法

    public static function attachmentHandle(array $content)
    {
        $domain = Typecho_Widget::widget('Widget_Options')->plugin('cosUploadV5')->domain;
        $tmp = preg_match('/http(s)?:\/\/[\w\d\.\-\/]+$/is', $domain);    //粗略验证域名
        if (!$tmp) return false;
//add start
        $a = $content['attachment']->path;
        $wl = array("gif","jpg","jpeg","png","tiff","bmp");
        if (in_array(self::getSafeName($a),$wl)) return Typecho_Common::url($content['attachment']->path."", $domain);;
//add end
        return Typecho_Common::url($content['attachment']->path, $domain);
    }

diff
diff

修改完插件后,为了使之前放在网站的资源也能被正确的调用,内容数据库也需要小范围更新一下

请勿直接使用,根据自己网站图片格式写!!

/*
[address]#vwid=INTEGER&vhei=INTEGER -> [address]#vwid=INTEGER&vhei=INTEGER
*/
UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'#vwid','#vwid');

修改好的cosUploadV5插件