[原创]腾讯COS 的 phpbb扩展
- hellohappy
- 网站管理员
- 帖子: 306
- 注册时间: 2018年11月18日, 14:27
- Been thanked: 5 time
#1 [原创]腾讯COS 的 phpbb扩展
腾讯对象存储COS phpbb扩展1.0.3:
现在的网站越来越向 云 的方向发展,其中对于小站点(或者前期,或者个人网站),最实惠的做法就是,巧妙的利用各种优惠,实现接近免费的建站。比如,我们可能购买的空间只有很小的存储空间,以及很小的带宽。那么我们可以:1.利用对象存储,减少我们对的服务器的硬盘的占用!同时还能分担压力,请求文件的流量都引到了对象存储那边去了。
2.利用CDN分发网络,把静态的文件都让CDN来发送。只有动态的请求才会真正的访问自己的服务器。所以带宽小点也够用了。
3.利用公共图床,减少服务器加载图片的压力,而且因为大部分是免费的,连加载图片的流量也不用出!这个方法的缺点是,图片一旦丢失就找不回来了。毕竟不是自己的存储空间。
对象存储,比如:阿里云的OSS,腾讯云的COS,华为云的COS,七牛云等等,他们可能取不一样的名字,(根据功能不一样,英文缩写也不一样),他们一般都会有一个免费的范围,(以月为单位)其中腾讯云的免费范围是50GB存储空间+10GB流量(2019年更新:现在老用户还是有免费空间,以后新注册的可能享受不了免费存储了),七牛云是10GB存储空间(帮忙推广最多可以到达50GB)+有限请求次数(2019年更新:你可以点击我的邀请码注册:https://portal.qiniu.com/signup?code=3lc7bd5r2ijpu;邀请赠送每月的免费流量5g/月,40g/月封顶还送存储桶等其他优惠券);又拍云在网站底部加入logo情况下,免费10GB存储+15GB流量(又拍云你可以用我的邀请码注册:https://console.upyun.com/register/?invite=SJhvCHUCN)。
我使用的是腾讯云的COS,关于腾讯云的COS帮助文档,可以访问https://cloud.tencent.com/product/cos/document
本站的采用的是phpbb软件建站,为了方便使用腾讯的存储桶服务,我改写了原来用于支持 AWS 的对象存储服务的扩展,原来的扩展作者信息是:
原扩展名字:AWS S3
原扩展官方下载地址:phpbb aws_s3 扩展下载地址
原扩展GitHub地址:https://github.com/AustinMaddox/phpbb-extension-s3
作者名字:Austin Maddox
作者主页:https://github.com/AustinMaddox/
注意:除非你知道怎么使用 composer ,请你从原扩展官方下载地址下载并正常安装。
改写以后:
支持了腾讯云的对象存储COS,使用的是腾讯云的对象存储的 PHP CDK ,具体的内容已经建立对象存储的方法,可以访问:
腾讯云的COS帮助文档,可以访问https://cloud.tencent.com/product/cos/document
改写以后的作者信息为:
扩展名字:tencentCOS
扩展官方下载地址:暂无
扩展GitHub地址:https://github.com/hellohappy0/phpbb-ex ... tencentcos
作者名字:ZWYang
作者主页:https://www.postgraduate.top
注意:插件启动以后,文件会在原来的服务器上面保存一份(也就是原来的工作方式不变),同时,所有上传的文件上传到腾讯COS,并将帖子内的链接改为存储桶的链接。倘若你不是建站之初就开启了这个插件,你需要将你根目录下的file文件夹(也就是你的文件存储位置)下面的文件全部拷贝到腾讯的对应存储桶里面。否则,你在访问文件或者图片时候可能会报错(不是致命错误,但是你以前的文件都访问不了,除非你停掉扩展,才能访问以前的文件。)
如果你有任何疑惑,欢迎留言,我会尽量回复你,但是你的留言将来可能会被删除
设置的截图如下:
扩展下载地址(三种格式随便选一个):
Link: | |
Hide post links |
- hellohappy
- 网站管理员
- 帖子: 306
- 注册时间: 2018年11月18日, 14:27
- Been thanked: 5 time
#2 Re: [原创]腾讯COS 的 phpbb扩展
腾讯对象存储COS 的 phpbb扩展1.0.4:
修改了一下翻译,增加了一点个人信息,具体还改了什么忘记了,和1.0.3版本使用基本没什么差别。这个版本和1.0.3版本都存在的一些问题:
1.上传的文件直接按照服务器上面的文件命名,这样就导致某些后缀可能不能被很好的识别,比如xls;而且由于名字都是字母数字,所以完全没法管理COS端的文件,要删文件要改文件都只能自己一个个查看下载链接!
2.删除文件的时候,不会在COS端自动删除缩略图,但是电脑端已经删了。
3.如果在之前没有安装过这个扩展,想要使用这个扩展,需要自己上传 file文件夹里面的内容到COS端(虽然这个并不复杂)。
tencentcos 1.0.4版本下载
Link: | |
Hide post links |
- hellohappy
- 网站管理员
- 帖子: 306
- 注册时间: 2018年11月18日, 14:27
- Been thanked: 5 time
#3 Re: [原创]腾讯COS 的 phpbb扩展
腾讯对象存储COS 的 phpbb扩展最新版:
由于要解决1.0.4版本和1.0.3版本留下的问题,必须要修改phpbb的源代码(提供的删除文件的接口函数没有实际文件名这个参数,我们要自己加上)(如果你不修改phpbb源代码,当你删除文件的时候会发生错误!)
修改phpbb的根目录下的 /phpbb/attachement/delete.php 文件中的以下两句:
大约274行:
Code: 全选
$sql = 'SELECT post_msg_id, topic_id, in_message, physical_filename, thumbnail, filesize, is_orphan
FROM ' . ATTACHMENTS_TABLE . '
WHERE ' . $this->db->sql_in_set($this->sql_id, $this->ids);
Code: 全选
$sql = 'SELECT post_msg_id, topic_id, in_message, physical_filename, thumbnail, filesize, is_orphan, real_filename
FROM ' . ATTACHMENTS_TABLE . '
WHERE ' . $this->db->sql_in_set($this->sql_id, $this->ids);
Code: 全选
$this->physical = array('filename' => $row['physical_filename'], 'thumbnail' => $row['thumbnail'], 'filesize' => $row['filesize'], 'is_orphan' => $row['is_orphan']);
Code: 全选
$this->physical = array('filename' => $row['physical_filename'], 'thumbnail' => $row['thumbnail'], 'filesize' => $row['filesize'], 'is_orphan' => $row['is_orphan'], 'real_filename' => $row['real_filename']);
最新版解决了1.0.4版的提到的问题:
1.上传的文件按照 服务器上面的文件名+“_”+文件名 命名,方便了管理COS端的文件,同时可以保证下载下来的时候都有后缀。
2.删除文件的时候,会在COS端自动删除缩略图。
3.如果在之前没有安装过这个扩展,想要使用这个扩展,由于新的命名方式,你已经不可能手动直接复制你file文件夹下面的文件到COS端了。我提供了一小段代码,在 tencentcos-new\event\main_listener.php 这里。这个php中有一段代码是这样的:
Code: 全选
//if you want to upload file by this program rather than by yourself, Delete the following comments( 10 rows)
/*
try{
$this->tencentcos_client->headObject(['Bucket' => $this->config['tencentcos_bucket'], 'Key' => $attachment['physical_filename'] ."_". $uploadFileName]);
//File has been here, nothing to do
} catch (\Exception $e) {
//No such file , Upload the thumbnail to TencentCOS.
$body = file_get_contents($this->phpbb_root_path . $this->config['upload_path'] . '/' . $attachment['physical_filename']);
$this->uploadFileToTencentCOS( $attachment['physical_filename'] ."_". $uploadFileName, $body, $attachment['mimetype'], $uploadFileName);
}
*/
如果你一直不加上这一段代码的注释会怎么样?不会有很大的影响,只是他会每次打开帖子都向你的COS端咨询一遍你的文件存不存在。这可能会减慢你的服务器的运行效率。
后面我可能会直接把上传这块写在acp端,而不是自己注释。
附上我的github地址:https://github.com/hellohappy0/phpbb-ex ... tencentcos
最新版在这里下载:
Link: | |
Hide post links |
- hellohappy
- 网站管理员
- 帖子: 306
- 注册时间: 2018年11月18日, 14:27
- Been thanked: 5 time
#4 腾讯COS 的phpbb扩展1.0.5
简介:
1.0.5并没有解决1.0.4版留下来的任务
修复了腾讯云ACL超过1000条的错误
增加了 上传或删除文件失败引发的错误信息 输出到 acp面板的错误日志 的功能。
zip下载:
1.0.5并没有解决1.0.4版留下来的任务
修复了腾讯云ACL超过1000条的错误
增加了 上传或删除文件失败引发的错误信息 输出到 acp面板的错误日志 的功能。
zip下载:
Link: | |
Hide post links |
- hellohappy
- 网站管理员
- 帖子: 306
- 注册时间: 2018年11月18日, 14:27
- Been thanked: 5 time
#5 腾讯COS 的phpbb扩展1.0.6
简介:
这个版本把前面说的功能都实现了,已经在3.2.8版本的phpbb中测试,暂时没有发现错误。
新的功能分别有:
1.自动上传附件
每当你访问到网站的时候,将会自动上传你这个网页中所有的附件(附件只包括files文件夹里面的)到存储桶。建议当你保证所有附件都上传了以后,关掉这个选项以加快你网页的访问速度。这个选项为了帮助你上传你的旧文件到存储桶。
2.自动上传缩略图
每当你访问到网站的时候,将会自动上传你这个网页中所有的缩略图(只包括files文件夹里面的)到存储桶。如果你的网站设置中设置了生成缩略图,你需要开启这个选项,以帮助你把新的缩略图上传到存储桶。
这个功能旧版也有,只不过我没有写到ACP面板上,现在它可以选择开也可以关掉。当你的网站开了缩略图,但是你肯定你的网站不会增加缩略图的时候,关掉这个开关可以节省打开网站的时间和减少对存储桶api的调用。
下载地址:
这个是完整的附件压缩包,包含了依赖的SDK等插件。如果你不知道composer是什么,请直接下载这个版本,并解压到你的ext目录下。后面的安装步骤与正常安装插件相同:
这个是不含vendor文件夹的版本,请自行使用composer安装依赖:
这个版本把前面说的功能都实现了,已经在3.2.8版本的phpbb中测试,暂时没有发现错误。
新的功能分别有:
1.自动上传附件
每当你访问到网站的时候,将会自动上传你这个网页中所有的附件(附件只包括files文件夹里面的)到存储桶。建议当你保证所有附件都上传了以后,关掉这个选项以加快你网页的访问速度。这个选项为了帮助你上传你的旧文件到存储桶。
2.自动上传缩略图
每当你访问到网站的时候,将会自动上传你这个网页中所有的缩略图(只包括files文件夹里面的)到存储桶。如果你的网站设置中设置了生成缩略图,你需要开启这个选项,以帮助你把新的缩略图上传到存储桶。
这个功能旧版也有,只不过我没有写到ACP面板上,现在它可以选择开也可以关掉。当你的网站开了缩略图,但是你肯定你的网站不会增加缩略图的时候,关掉这个开关可以节省打开网站的时间和减少对存储桶api的调用。
下载地址:
这个是完整的附件压缩包,包含了依赖的SDK等插件。如果你不知道composer是什么,请直接下载这个版本,并解压到你的ext目录下。后面的安装步骤与正常安装插件相同:
这个是不含vendor文件夹的版本,请自行使用composer安装依赖:
Link: | |
Hide post links |