前言
相信喜欢写博客的童鞋都或多或少使用markdown来写的博客,使用markdown很香,真的很香,但是写完了上传到网页上就犯难了,图片是以链接/路径插入进markdown文本里的,意味着图片还要一张一张的上传到网页。
这不能忍,所以需要用到图床,图床说白了就是上传图片,并且生成所有人都能访问的外部链接,这样我们用markdown写的博客就完整了。
现存的图床有免费的也有收费的,免费的缺点就是不稳定,或者完全挂掉,如果还没有备份的话,那可真上头,比如我使用的sm.ms这个。收费的呢,稳定,可控,但是对荷包不友好巴拉巴拉~
本文的重点就是自建图床,完全免费的有,收费的也有,typora的使用不在这里叙述。
接下来进入正题~
一,使用Github搭建免费图床
好处:免费,免费,免费
坏处:不稳定,可能让你的博客有时候会加载不出图片
1. 新建图床仓库
2. 创建token 密匙
点击:头像 -> ①settings -> ②Developer settings -> ③Personal access tokens -> ④Tokens (classic) -> ⑤Generate new token -> ⑥Generate new token (classic)
得到如下画面,继续~
然后直接到底部点击就行了
得到如下红框里的东西,一定要复制保存下,此界面离开后就看不到了!!!
3. 配置picgo的github插件
关于picgo是什么以及如何与Typora交互这里暂不做介绍
配置解释:
设定仓库名:(你的账号ID)/(你的仓库名)
设定分支名:如果你创建的时候没有特别配置分支的话,一般都是 main
设定 token:就是上一个步骤生成的tokens
设定存储路径:必须以/结尾,会存储到你的仓库目录下的这个目录内
设定自定义域名:建议使用免费的cdn开头https://cdn.jsdelivr.net/gh/后面再接仓库名里的内容
点击确定,再点击设为默认图床,大功告成!
然后就可以比较愉快的使用免费图床了~
二,使用各大厂云OCS对象存储搭建图床
好处:很稳定,有些大厂还有免费的CDN,又快又好
坏处:收费的,具体看你使用哪些套餐。个人使用也不是贵到离谱那种。
这里是以腾讯云为例,其他的云基本相似。
随便百度一下云对象存储,就会出来一堆广告,看来没有对手的度娘也在疯狂摆烂了。
这里挑选其中一条,腾讯云的1块钱50G的对象存储(点我)
声明:没有打广告,如果给腾讯云引了流,麻烦结一下广告费,蟹蟹~
好的,进入正题~
1. 创建存储桶
然后配置基本信息
然后一直下一步,再点创建。成功创建存储桶。
记录下存储桶的名称,和所属地域的代号,如上图的红框部分,也就是 ap-guangzhou
,后面会用到
2. 创建 API 秘钥
进入 【访问管理】 - 【访问秘钥】 - 【API 秘钥管理】(点此访问),会提示是否使用子账号管理,可根据实际需要进行选择,这里我们直接使用主账号进行创建。
创建成功,将 APPID,SecretId,SecretKey 保存下来,非常重要,谨防外泄。
3. 配置PicGo插件
新版的PicGo插件列有自带腾讯云Cos插件,这里我们就不用下载了。
配置列表:
这里选择V5,然后将之前步骤的相关参数填入进去,点击确定并且点击设为默认图床。
注意:存储路径必须以/结尾,否则就会变成上传图片的前缀。
测试一波先
点击上传,发现已经成功上传啦
到这就完成了~
三,使用云服务器搭建图床
好处:很稳定,很可控,*度高,适合折腾
坏处:也是收费的,但是对于新人挺便宜的。再就是门槛稍微高一些,需要花时间精力
前提:
- 有一个云服务器并且安装了宝塔面板
- 在安装宝塔面板的时候一键安装了LNMP
- 有一个有证书的域名并且正确解析到这个服务器的IP
网上很多大神都有制作*,我们拿来使用就行,下面介绍几个使用量最多的
1. 使用chevereto 自建图床
简介:
Chevereto 是一款自建图床程序
Chevereto 支持多用户系统、相册集、统一仪表板、HTML 可拖曳式上传、桌面版上传插件、多种外部存储(Amazon S3、Google Cloud、阿里云 OSS 等)、自定义主题、多语言、CDN 和自定义 API 等功能。
程序本身收费,但有免费版,功能受限,个人使用也是足够的
免费版 Chevereto 链接:https://github.com/rodber/chevereto-free
更新频繁,当前最新版本 1.6.2
环境:
Chevereto 依赖环境 PHP,MySQL,Nginx
- 建议 PHP 版本7 以上
- MySQL 5.7 以上
- Nginx 1.2
新建网站
点击 网站 -> 添加站点
点击提交
配置网站
点击刚才新建的站点
配置SSL
将你此域名对应的证书的.key文件和.pem文件内容分别拷贝到下图左右,并点击保存。
ps: 域名证书是需要下载的,下载下来是一个压缩包,解压出来即可看到对应的格式的文件。
刷新一下即可看到证书已部署
配置源码
-
建站调试成功后,删除目录下的
index.html
和404.html
-
然后下载源码,推荐下载1.3.0的版本,版本太高会打开一片空白,原因没有深究,下载链接:https://github.com/rodber/chevereto-free/archive/refs/tags/1.3.0.zip
-
将此链接使用文件中的远程下载,然后解压出来,将解压后的目录chevereto-free-1.3.0中的所有内容拷贝到你的网站目录下
-
并且右键你的网站目录,给此目录并且包含子目录及文件的777权限
给网站配置伪静态:
location / {
if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } try_files $uri $uri/ /api.php; } location /admin { try_files $uri /admin/index.php?$args;
}
然后点击保存
然后到这里网站就配置完成了~
配置chevereto
浏览器打开你新建的网站,它会自动进入安装界面
如下是配置数据库信息
将新建网站时的数据库信息填入那三个框就行,其他默认就好
然后点击继续,进入到管理员配置
点击安装,恭喜,已经可以用了~
ps: 如果英语不好的话,可以点击头像 -> settings -> Language -> 在下拉窗选择简体中文就好
配置PicGo的上传插件
点开PicGo的插件设置,搜索并且安装Chevereto Uploader
配置Chevereto Uploader
这里只需要填两项:
Key:按照如下配置拿到
然后点击确定并且点击设为默认图床
开始享用吧!~
2. 使用EasyImage自建
简介:
GitHub开源地址:https://github.com/icret/EasyImages2.0
文档地址:https://www.kancloud.cn/easyimage/easyimage/2625222
Demo地址:https://png.cm/
作者博客:https://blog.png.cm/
环境:
EasyImage 依赖环境 PHP,MySQL,Nginx
- 建议 PHP 版本7 以上
- MySQL 5.7 以上
- Nginx 1.2
- PHP插件 Fileinfo
这里单独提一下安装fileinfo插件
新建网站
点击 网站 -> 添加站点
点击提交
配置网站
点击刚才新建的站点
配置SSL
将你此域名对应的证书的.key文件和.pem文件内容分别拷贝到下图左右,并点击保存。
ps: 域名证书是需要下载的,下载下来是一个压缩包,解压出来即可看到对应的格式的文件。
刷新一下即可看到证书已部署
配置源码
-
建站调试成功后,删除目录下的
index.html
和404.html
-
然后下载源码,推荐下载最新的2.6.7的版本, 链接:https://github.com/icret/EasyImages2.0/archive/refs/tags/2.6.7.zip
-
将此链接使用文件中的远程下载,然后解压出来,将解压后的目录EasyImages2.0-2.6.7中的所有内容拷贝到你的网站目录下
-
并且右键你的网站目录,给此目录并且包含子目录及文件的777权限
-
关闭放跨站
然后浏览器打开你新建的域名, 进入管理员用户配置
根据提示一步步来就好, 这个配置很简单
配置PICGO的上传插件
点开PicGo的插件设置,搜索并且安装Web Uploader
配置Web Uploader
需要配置4个参数:
API地址:你的网站地址+/api/index.php,例:https://pic.xxxx.com/api/index.php
POST参数名:image
JSON路径:url
自定义Body:{"token":"8337edadadadd9c5899f3509b23657"},关于token怎么获得,如下图
配置完成后,就可以愉快的上传了
3. 使用SFTP自建图床
- 服务器配置比较简单,这里就不做详细介绍了,原理就是基于FTP/SFTP来实现的.
- 然后就是PICGO部分也是安装一个SFTP插件,配置好服务器的域名地址和相关账号信息
- 就可以愉快的使用了
4. 还有一些其他的
例如蓝空图床啥的,和1/2搭建的方式基本一致,这里不做赘述.
建议关闭网站的NGINX防火墙,除非你会配置规则,否则会出很多意想不到的问题
Q&A
Q: 为什么按照本文配置完后,输入我新建的网站域名打不开?
A: 检测一下域名是否有解析到这个服务器
Q:为什么网站刚开始能打开,但是我上传了一张图片后就打不开了
A:检查一下该网站是否开启了防火墙,并且你的IP被短暂的封禁掉了
Q:为什么网站能打开,能网页上传,但是使用PICGO就就上传不了
A:检查一下SSL证书是否有正确配置,并且查看PICGO的日志,就能很准确的知道是什么原因造成的
end
感谢阅读~
希望能帮到你~
see you~
码字不易,转载请注明原作者 ~ (from:https://erdong.work)