原理很简单 – 就是利用token来上传文件(只不过刚好文件是图片)到public repo;然后利用了cdn进行加速。jsdelivr应该是github的客户,所以默认就可以加速。
利用了这个大哥的源码 – https://github.com/peng4740/autoPicCdn
CDN得感谢 https://www.jsdelivr.com/
需要这么些步骤
宝塔建立新网站+mysql数据库
在mysql管理界面里面,执行 (如果你设立了自己的数据库名,那么源码当中是pic
.remote_imgs
是不对的)
CREATE TABLE `remote_imgs` ( `imgmd5` VARCHAR(32) NOT NULL COMMENT '文件md5' , `imguploadtime` INT(10) NOT NULL COMMENT '上传时间,10位时间戳' , `imguploadip` VARCHAR(20) NOT NULL COMMENT '上传IP' , `imgurl` VARCHAR(200) NOT NULL COMMENT '远程访 >问URL' , PRIMARY KEY (`imgmd5`)) ENGINE = InnoDB COMMENT = '图片统计表';
生成github token
去这里 https://github.com/settings/tokens
把”repo Full control” 和”write:packages”都勾上 – 然后把这段”3932XXXX”这类的token记录下来
下载源码
cd /www/wwwroot/
# 备份一下
mv picbed.10244201.xyz gitpic.10244201.xyz.bak
git clone https://github.com/yumusb/autoPicCdn picbed.10244201.xyz
chown www:www picbed.10244201.xyz
chmod -R 766 picbed.10244201.xyz
cd picbed.10244201.xyz
vi up.php
再修改一下 up.php – 最主要就是这几项
define("REPO","PubRepoName"); //必须是下面用户名下的公开仓库
define("USER","GitHub-UserName"); //必须是当前GitHub用户名
define("MAIL","[email protected]"); // email
// https://github.com/settings/tokens 去这个页面生成一个有写权限的token(repo:Full control of private repositories 和write:packages前打勾)
define("TOKEN","393271XXXXXXXXXX7bf0");
//数据库配置文件 用自定义的数据库
$database = array(
'dbname' => 'picbed_10244201_',
'host' => 'localhost',
'port' => 3306,
'user' => 'picbed_10244201_',
'pass' => 'DbGXXXXXXXXXXXxwb',
);
访问 picbed.10244201.xyz
开启https + CloudFlare Proxy打开(避免IP泄露)
如果出现css/js加载问题,去宝塔把文件目录的权限改成 www “766”就行了。
Github+jsdelivr不倒,免费图床不倒!