[原创]腾讯COS 的 phpbb扩展

所有资料都有简单介绍,要注明是否原创、侵删。
回复
头像
hellohappy
网站管理员
网站管理员
帖子: 280
注册时间: 2018年11月18日, 14:27
Been thanked: 2 time

#1 [原创]腾讯COS 的 phpbb扩展

未读文章 hellohappy » 2018年12月11日, 08:51

腾讯对象存储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文件夹(也就是你的文件存储位置)下面的文件全部拷贝到腾讯的对应存储桶里面。否则,你在访问文件或者图片时候可能会报错(不是致命错误,但是你以前的文件都访问不了,除非你停掉扩展,才能访问以前的文件。)

如果你有任何疑惑,欢迎留言,我会尽量回复你,但是你的留言将来可能会被删除

设置的截图如下:
设置截图.png
设置截图.png (48.13 KiB) 查看 2328 次
设置截图.png
设置截图.png (48.13 KiB) 查看 2328 次


扩展下载地址(三种格式随便选一个):
AustinMaddox.gz
(857.01 KiB)
AustinMaddox.gz
(857.01 KiB) 尚未被下载
AustinMaddox.7z
(719.19 KiB)
AustinMaddox.7z
(719.19 KiB) 尚未被下载
AustinMaddox.zip
(1.2 MiB)
AustinMaddox.zip
(1.2 MiB) 尚未被下载

Link:
Hide post links
Show post links

头像
hellohappy
网站管理员
网站管理员
帖子: 280
注册时间: 2018年11月18日, 14:27
Been thanked: 2 time

#2 Re: [原创]腾讯COS 的 phpbb扩展

未读文章 hellohappy » 2018年12月18日, 06:05

腾讯对象存储COS 的 phpbb扩展1.0.4:
    修改了一下翻译,增加了一点个人信息,具体还改了什么忘记了,和1.0.3版本使用基本没什么差别。
    这个版本和1.0.3版本都存在的一些问题:
        1.上传的文件直接按照服务器上面的文件命名,这样就导致某些后缀可能不能被很好的识别,比如xls;而且由于名字都是字母数字,所以完全没法管理COS端的文件,要删文件要改文件都只能自己一个个查看下载链接!
        2.删除文件的时候,不会在COS端自动删除缩略图,但是电脑端已经删了。
        3.如果在之前没有安装过这个扩展,想要使用这个扩展,需要自己上传 file文件夹里面的内容到COS端(虽然这个并不复杂)。
 tencentcos 1.0.4版本下载

tencentcos-1.0.4.zip
(1.15 MiB) 尚未被下载

Link:
Hide post links
Show post links

头像
hellohappy
网站管理员
网站管理员
帖子: 280
注册时间: 2018年11月18日, 14:27
Been thanked: 2 time

#3 Re: [原创]腾讯COS 的 phpbb扩展

未读文章 hellohappy » 2018年12月18日, 06:20

腾讯对象存储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); 
大约298行

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

最新版在这里下载:

tencentcos-new.zip
(1.15 MiB)
tencentcos-new.zip
(1.15 MiB) 尚未被下载

Link:
Hide post links
Show post links

头像
hellohappy
网站管理员
网站管理员
帖子: 280
注册时间: 2018年11月18日, 14:27
Been thanked: 2 time

#4 腾讯COS 的phpbb扩展1.0.5

未读文章 hellohappy » 2019年6月08日, 11:56

简介:
    1.0.5并没有解决1.0.4版留下来的任务
    修复了腾讯云ACL超过1000条的错误
    增加了 上传或删除文件失败引发的错误信息 输出到 acp面板的错误日志 的功能。

zip下载:

Link:
Hide post links
Show post links


回复