WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自影像编码格式VP8,被认为是WebM多媒体格式的姊妹项目,是由Google在购买On2 Technologies后发展出来,以BSD授权条款发布。WebP最初在2010年发布,目标是减少文件大小,但达到和JPEG格式相同的图片质量,希望能够减少图片档在网络上的发送时间。2011年11月8日,Google开始让WebP支持无损压缩和透明色(alpha通道)的功能,而在2012年8月16日的参考实做libwebp 0.2.0中正式支持。根据Google较早的测试,WebP的无损压缩比网络上找到的PNG档少了45%的文件大小,即使这些PNG档在使用pngcrush和PNGOUT处理过,WebP还是可以减少28%的文件大小。
下面这张图片原图180kb,Webp压缩后仅30kb,可使web传输更快↓
# 准备工作
# 腾讯云账号设置
点击右上角-访问管理,添加账号。
设置用户名,访问方式为编程访问,禁止控制台访问,权限取消Admin权限,给CosFull COS全部权限,确定添加,如下图↓
为什么选择腾讯云?腾讯云便宜啊!这些东西基本白嫖!
# COS设置
打开COS控制台,创建储存桶,名称随便起一个,地域为了方便选择北京,私有读写。
# 插件同步法
安装Media Cloud插件,启用后点击NEXT,选择S3。
设置界面如下(已翻译成中文),第一个填你设置的COS子账户的SecretId,第二个为SecretKey,第三个填你创建的储存桶的名称,地区北京,链接填北京cos的地址(不要带桶名),设置好后如图片上传失败请关闭最后一个按钮。
此时你的旧图片没有上传,你需要自己上传旧的图片到COS,只上传如
2018
2019
2020
这些文件夹即可。
配置完成后建议继续配置回源同步以保证图片不会加载失败。
# 回源同步法
该方法需要你拥有自己的独立服务器而不是虚拟空间。
COS支持设置源站回源,获取资源后保存下来,利用这个功能可以在你服务器上添加一个站点,比如i4.gymxbl.com,路径为你站点的图片目录,一般为/wp-content/uploads,如果需要https回源请设置ssl证书,但无需解析。
转到COS设置,进入你创建的储存桶,基础配置,回源设置,回源地址填你的服务器ip,同步回源什么的看着开,回源头部添加参数host,值为你设置的域名如i4.gymxbl.com,如果有防盗链还需要referer参数。
# CDN设置
为了防止COS被盗刷刷,导致损失巨额流量费,需要设置CDN,转到CDN控制台,添加域名,源站设置COS回源,授权储存桶全部权限。
访问控制设置,QPS限制适量,建议值为50-200之间,referer防盗链设置自己域名以及部分友站域名,禁止空referer。
缓存设置全部文件建议如不改动设置为365天,状态码404缓存删除(设置为零)。
Htpps设置(如没有配置HTTPS证书请忽略),HTTPS 2.0打开,强制跳转http→https,OCSP装订配置打开,HSTS 31536000秒不包含子站点。
高级配置设置带宽封顶配置为5Mbps,返回404。
图片优化打开Webp自适应。
如果你安装了Media Cloud,你可以进入设置,CDN SETTINGS填写你的CDN域名,如果没有,你需要将如下代码加入你的模板函数里面↓(该代码来自主题Sakura,其他主题没有测试,如无法替换链接请评论回复)
/*
* 图片CDN
*/
add_filter('upload_dir', 'wpjam_custom_upload_dir');
function wpjam_custom_upload_dir($uploads)
{
$upload_path = '';
$upload_url_path = 你的CDN域名;
if (empty($upload_path) || 'wp-content/uploads' == $upload_path) {
$uploads['basedir'] = WP_CONTENT_DIR . '/uploads';
} elseif (0 !== strpos($upload_path, ABSPATH)) {
$uploads['basedir'] = path_join(ABSPATH, $upload_path);
} else {
$uploads['basedir'] = $upload_path;
}
$uploads['path'] = $uploads['basedir'] . $uploads['subdir'];
if ($upload_url_path) {
$uploads['baseurl'] = $upload_url_path;
$uploads['url'] = $uploads['baseurl'] . $uploads['subdir'];
}
return $uploads;
}
暂无评论内容