自建图床教程:腾讯云COS搭建免费又稳定
先来张图片看下效果

可以看到加载还是很快的啊~(图片已压缩,大小 400 多 KB)
前言
Update: Lsky Pro 的新版简略教程在这
然后为自己的图床打个广告:图床地址: https://img.akass.cn
纯收费图床,价格基本为成本价。就是指望用户多起来之后能有议价权,那时候才有一定利润。具体价格可见这篇文章
老规矩,说下为啥要自建图床。
现如今,公共图床有不少,免费的也很多。知名的有SM.MS图床,路过图床,ImgURL等等但我都觉得或多或少有些慢,并且万一哪天不再提供服务了,大量图片迁移必定费时费力。而自己搭建的图床自己心中有数,虽然成本高上不少,但却足够稳定,心中有数。
讲真,我这点小博客哪有人来看呐,花费应该是很少的。
多图警告!
方案
我的图床选用的是自建前端的方案,并且存储策略选为腾讯云 COS。
大致原理如图:

开始
首先咱得有个腾讯云账号,这里就不展开了。我用的腾讯云全家桶,其他平台步骤也大差不差。
前端搭建寻找
肯定用现成的程序,不然等写好图床我估计大学都毕业了(笑)。
那就找罢。
首先找到了 auxpi,看着是很舒服的。但是端详许久发现它竟然是调用其他图床 api 来上传的,也就是说图片上传到了其他图床去,这与我的想法是不吻合的。
于是继续寻找。
然后我便发现了 Chevereto。免费版足够使用了,但是免费版不支持使用其他存储策略,仅能存储在本地,COS 挂载到本地也是可以的,也不是特别麻烦,麻烦的就是配置 Chevereto 的存储位置。免费版不行那就去看看完整版的许可证多少钱吧。好家伙一看 39 美元,对于我来说还是太贵了,我就自己用用,为啥要花这么多,更何况我难以承受如此高昂的授权费用。
那就再找罢。
便发现了Lsky Pro,兰空图床。开源,免费。支持第三方存储策略,完美。
它还支持一键部署至腾讯云开发,但是我嫌腾讯云函数有点慢,而且收费点有些多,虽然是按用量收费,但收费的项目多,看着一排排的收费项会比较难受。于是我部署在了腾讯云轻量上,2C4G8M,性能足够。(?
正式搭建
我是个懒人,能有 GUI 就用 GUI,于是——宝塔!该你上了!
装完宝塔,就一套 LNMP 整上。用宝塔安装就非常的省心啊,动动手指就完成了,非常舒服。这里安装的是 Nginx 1.20.1,MySQL 8,PHP 7.4,不用 8 的原因是之前使用 PHP8 碰到了些无解的 BUG,已经有人提交了 Issue,下个版本应该会修复。
装好后过来网站页面,“添加站点”,非常方便。配置如图:

进入网站目录,上传Lsky Pro的压缩包。解压缩。然后将解压缩后的文件放入根目录。如图:

设置运行目录为public:

根据官方使用手册配置伪静态
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}

记得安装 PHP 的 fileinfo 拓展,宝塔再软件商店点击 PHP 的设置即可找到,非常方便,curl 宝塔已经自动安装了。

一切准备就绪。

下一步,填写数据库信息。

设置管理员信息。

安装成功。

完成
此时就可以进入网站,开始使用了!当然也可以瞻仰一下大佬的博客。顺带插一句,Lsky Cloud 加油!(不过好像凉了)
对象存储配置创建专用的 Bucket
注意!我的域名已经备案,可以使用大陆节点服务。
在对象存储的存储桶列表中点击创建存储桶,我选择了广州,是因为我的轻量服务器也在广州,同地域是走内网的,内网无需支付流量费用,这就能为我省下一笔费用。选择私有读写,免得流量被盗刷,COS 的流量可不便宜。
域名没有备案的同学,也可以选择大陆外的节点,就是费用稍高些;即使选择了大陆节点,也可以通过配置 CDN 加速节点等方式来正常使用。
配置访问 CDN
我们为了防止盗刷流量,为存储桶设置了私有读写,但这也使我们无法直接访问图片。这就需要 CDN 来解决这个问题。
你可以在存储桶详情中点击左侧的域名与传输管理,选择使用默认 CDN 加速域名或者自定义 CDN 加速域名。无论选择哪像,都记得打开回源鉴权,否则 CDN 无法回源存储桶内文件。
默认 CDN 加速域名是腾讯云的域名,可以直接使用,但含有你的 APPID,需要注意。可以选择中国境内,全球,境外貌似需要迂回一下,我没有试过,不确定。自定义 CDN 加速域名则可以直接选择中国境内,中国境外,全球的加速地域,根据自己情况选择。
在此我选择自定义 CDN 加速域名,填好域名,选择了境内加速。
配置 CDN CNAME
!选择默认 CDN 加速域名的可以跳过此步
前往DNSPod 控制台添加刚刚填写的域名,CNAME 指向存储桶页面提供的 CNAME 域名。之后可以去腾讯云的CDN 域名管理查看刚刚添加的 CDN 加速域名。
不过一会状态就变成已启动了。
配置 CDN 相关设置
我开启了IPv6访问,这没啥好说的。
我还配置了防盗链。referer 白名单,包含自己的所有域名、一些朋友的域名及空 referer(空 referer 可以使图片直接在浏览器中预览)。你可以按自己情况配置。支持*。
前端、对象存储对接
配置完 CDN 后就到了最后一步,将兰空连接到存储桶。
此时有两种方法。
法一更简便,但安全要打点折扣。法一便是官方使用手册的方法
由于直接使用了主账号密钥,一旦泄露而又不知情的话会造成严重损失。
便衍生出法二,便是创建子用户,一个仅具有该存储桶读写权限的子用户。使用该子用户的密钥可以降低泄露造成的损失。
子用户
进入腾讯云用户列表,单击新建用户。再点击快速创建一起看博客,设置用户名一起看,更改访问方式,并将用户权限删除(也可在此处直接配置存储桶读写权限)直接配置。我的配置如下图。

进入存储桶详情页,在左侧列表中找到权限管理,点击,在下拉列表中点击存储桶访问权限,在用户权限栏点击添加用户,在用户类型处选择子账号,账号 ID 点击即可选择,非常方便。权限选择数据读取和数据写入即可,单击右侧的保存以保存该条用户权限。
回到用户列表,进入用户详情页,查看 API 密钥。待会要用。
之后即可参考官方手册,完成配置。当然我也会记述这部分的。
正式对接
登陆管理员账号后点击兰空图床左侧存储策略,在上方选择腾讯云COS,依照提示填空。注意此处SecretKey和SecretId是一上一下的顺序,并非 Id 在上 Key 在下,填写时需注意。域名填写 CDN 加速域名。当然你没有配置 CDN 加速也可直接填写存储桶访问域名。
我的配置如下。

点击保存即可。
这样就完成了对接。
全部完成
上传图片测试一下,正常。
教程结束。
本文转载自互联网,如有侵权,联系删除

