对Typecho的附件上传至七牛云存储的改造
对Typecho的附件上传至七牛云存储的改造
孤月蓝风 发表于3个月前
对Typecho的附件上传至七牛云存储的改造
  • 发表于 3个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

七牛云存储是个好东西,免费的量很多,所以就把自己博客的图片都上传至了七牛,加速访问。

但是最近考虑换成 typecho,由于空间是在国外买的,速度并不快,所以决定将附件上传至七牛,加速访问。(目前还在SAE)

对 typecho 不太熟,所以研究了很久,而且使用的是非常笨拙的方法。

先将七牛sdk的qiniu文件夹复制到 typecho 中的 var 目录下。

修改 var/Widght/Upload.php 文件:

在 if (isset($file['tmp_name'])) { 这一行(大约118)上面添加:

$qn_filename = "";

在 if (isset($file['tmp_name'])) { 这一行下面添加:

require_once("qiniu/io.php");

require_once("qiniu/rs.php");

$bucket = "Bucket名称";

$accessKey = '你的AK';

$secretKey = '你的SK';

$qn_filename = date("Ymd")."/".  (string)time() . (string)rand(11111, 99999);

Qiniu_SetKeys($accessKey, $secretKey);

$putPolicy = new Qiniu_RS_PutPolicy($bucket);

$upToken = $putPolicy->Token(null);

$putExtra = new Qiniu_PutExtra();

$putExtra->Crc32 = 1;

Qiniu_PutFile($upToken, $qn_filename, $file['tmp_name'] , $putExtra);


$qn_filename 定义的是上传后的文件的名字,你可以根据你自己的需要修改。


最后将返回的数组中的 path 改为 'path' => $qn_filename, 即可。


同时,由于 typecho 会自动在返回的文件名前加上当前域名,所以还需要修改添加进文章时的URL。但是我找不到这个URL到底从哪里传入的,没有找到好的办法,所以通过一个比较笨的办法解决。

打开 admin/editor-js.php 文件,在265行插入以下代码:

url = url.replace(/localhost/g,"trlanfeng-website.qiniudn.com");

注:localhost为你的域名


当添加完成后,js会自动修改需要插入的URL,至此,typecho上传附件至七牛云存储就改造完成了,但这是一个本办法,如果有谁有更好的办法,欢迎分享。

共有 人打赏支持
粉丝 8
博文 70
码字总数 36962
×
孤月蓝风
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: