TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
/
注册
用户名
邮箱

typecho对接腾讯COS对象存储

2019-10-22
/
0 评论
/
21 阅读
/
正在检测是否收录...
10/22

服务商
市场上有很多的云提供商可以选择,七牛云、又拍云,百度云、阿里云、腾讯云等等,而且这些提供的Bucket免费额度也差不多少。个人推荐下腾讯云的COS对象存储,每个月免费50G空间,10G的CDN。(ps:虽然老马挺抠门的,这个免费额度足够我们小搏客使用了,到时候在底部给他加个友情图标作为回报吧。)

简介COS
对象存储(Cloud Object Storage,COS)是腾讯云提供的面向非结构化数据,支持 HTTP/HTTPS 协议访问的分布式存储服务,它能容纳海量数据并保证用户对带宽和容量扩充无感知,可以作为大数据计算与分析的数据池。腾讯云 COS 提供网页端管理界面、多种语言的 SDK 以及命令行和图形化工具,并且完全兼容
S3 的 API 接口,方便用户直接使用社区工具和插件,COS 还可以和其他云产品结合,比如利用 CDN 的全
球节点提供加速服务,利用数据万象的图片处理能力提供一站式图片解决方案等。

使用方法
首先,当然要有个腾讯云的账号了,一般都是用QQ登陆的,如果你没有QQ的话,那我只能告诉你,重新申请吧。

进入后按照如图下所指示找到COS存储面板。

这里在官方给出的免费额度,如果不懂的话可以资源腾讯云客服。

接下来,我们要创建我们的COS对象存储。如下图:

接下来我们开始配置我们的COS对象存储,首先我们要保存一些基本数据,然后在配置COS。如图用记事本保存下列
数据:

接下来我们点击左边菜单栏的密钥管理,去获取我们的API密钥,此密钥包括三个数据,分别为APPID,SecretId,
SecretKey。这三个数据其中SecretKey需要短信验证才可以观看,这三条数据也要存起来备用。这里就不做图片
展示了。

防盗链配置
这个配置最好配置下,官方文档说明,如果本站域名配置过CDN的话,那么会优先执行CDN的防盗链规则,在解释下什么
是防盗链,通俗的讲,就是别人恶意访问你的静态资源,而这些静态资源需要走你的CDN流量或者COS流量,从而照成你
的经济损失,本身就是用免费资源的我们最好还是配置下防盗链规则,如果CDN配置过防盗链的话这步可以省略。

如上图,*号为通配符,它可以自动匹配我们一级域名下的所有二级域名,并且设置为白名单,非此一级域名下的二级域名
如果访问COS存储的文件则会返回403.

配置插件
本人所用的插件是开源的,cosUploadV5。在这里首先感谢开源插件的开发者,点击这里下载
蓝奏云下载地址:https://www.lanzous.com/i6wlcqh
下载的方式可以用GitClone,也可以用Zip下载,推荐GitClone。
下载后上传到你空间的plugins插件目录里,并且返回到网站后台插件管理点击开启插件,然后进入设置来配置。
把刚才所存储的数据填写到插件里,点击保存就可以了。

设置后插件并且保存后,要做一处修改,在Plugin.php 148行左右可以修改上传的默认目录:
本插件默认上传目录:$filePath = '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/';
typecho默认上传目录:$filePath = '/' . 'usr' . '/' . 'uploads' . '/' .
date('Y') . '/' . date('m') . '/'; 修改$filePath变量即可

免费额度只适用于中国大陆,所以创建存储桶的时候要选择北京、上海、广州、成都和重庆,具体的可以参考这里

常见问题
如果遇到上传失败的话可以查看下自己服务器的upload文件夹的权限是否是777,给好权限后,在重启Nginx或者Apache,
刷新页面在试下,如果服务器环境是SAE,BAE,ACE以及是否是国内常见的虚拟主机,如果是的话,上传附件也会失败,
如何处理呢?在服务里找到这个文件var/Typecho/Common.php。的第99行。或者搜索下面的函数 isAppengine。

public static function isAppEngine()
{
    return !empty($_SERVER['HTTP_APPNAME'])                     // SAE
        || !!getenv('HTTP_BAE_ENV_APPID')                       // BAE
        || !!getenv('SERVER_SOFTWARE')                          // BAE 3.0
        || (ini_get('acl.app_id') && class_exists('Alibaba'))   // ACE
        || (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'],
           'Google AppEngine') !== false) // GAE
        ;
}

将其改成:

public static function isAppEngine()
{
    return false;
}

然后重启Nginx或Apache即可。

typecho插件Typecho
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwll.cn/archives/1616/(转载时请注明本文出处及文章链接)

评论 (0)