教你如何使用github+jsDelivr搭建免费图床

前言

之前写了一篇文章,教你如何使用Typora+PicGo实现图片自动上传到图床 。

这里我用的是七牛图床,七牛图床有一定的免费使用量(没记错的话应该是10个G),如果你的存储量超过这个大小就需要付费使用了。除此之外,还需要维护一个备案过的域名,绑定一台云服务器。这些都需要一定的费用。

因此,对于白嫖党来说非常不友好。

今天,我就教大家用 “全球最大同性交友网站” github 并搭配 jsDelivr 开源 CDN 来搭建一个免费图床。全程不需要任何费用哦,白嫖党欢呼吧~

## 正文

本文内容包括:

  • 创建一个 github 仓库

  • 使用 jsDelivr 免费 CDN 加速图片访问速度

  • 创建 Token

  • 使用 PicGo 配置 github 图床

创建 github 仓库

这里就跳过怎么注册 github 账号的步骤了,做技术的都晓得。

1、登录你的 github 账号,创建一个新的仓库。

img

2、然后填写仓库的资料,主要是仓库名,其他一般默认。

img

3、点击 create repository 后,跳到这个页面,就说明创建成功了。

img

然后可以上传一张图片试一下。不过,有可能你会遇到在 github 上看到的图片是裂开的情况。

只需要在电脑的 hosts 文件中添加以下代码即可。 windows 下的 hosts文件 目录在 C:\Windows\System32\drivers\etc 。(注意要以管理员权限打开) mac 下为 /etc/hosts

# GitHub Start
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com
151.101.108.133 user-images.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
151.101.76.133 avatars0.githubusercontent.com
151.101.76.133 avatars1.githubusercontent.com
151.101.76.133 avatars2.githubusercontent.com
151.101.76.133 avatars3.githubusercontent.com
151.101.76.133 avatars4.githubusercontent.com
151.101.76.133 avatars5.githubusercontent.com
151.101.76.133 avatars6.githubusercontent.com
151.101.76.133 avatars7.githubusercontent.com
151.101.76.133 avatars8.githubusercontent.com

然后回到你的图片仓库,刷新一下页面即可正常显示图片。

使用 jsDelivr 免费加速

其实,此时已经可以正常访问你仓库中的图片了。我这里以我创建好的仓库 myImages 为例。

img

要想访问仓库中的这个 test.png 图片,需要把链接地址中的 blob 改为 raw。即 https://github.com/starry-skys/myImages/raw/main/test.png 。或者在地址后拼接一段 ?raw=true,即 https://github.com/starry-skys/myImages/blob/main/test.png?raw=true

但是,我们发现,通过 github 直接访问图片,速度不是特别理想,毕竟服务器在国外。

因此,我们可以使用 jsDelivr 进行 CDN 加速。这是完全开源免费的。

使用方法,非常简单,即把图片地址链接域名改为 CDN 的域名。格式如下:

https://cdn.jsdelivr.net/gh/<你的github用户名>/<你的图床仓库名>@<仓库版本号>/图片的路径

还是以上边的 test.png 图片为例,仓库版本号直接用分支名,由于现在 github 主分支名字都叫 main 了,因此版本号写 main 。图片路径,是在仓库中的相对路径,因为我这里就在根目录,因此就是 test.png 。

最终地址为 https://cdn.jsdelivr.net/gh/starry-skys/myImages@main/test.png

其他说明,可参考 jsDelivr 官网介绍,jsDelivr 官网

配置 typora 自动上传到 github 图床

接下来,如果需要在 typora 中设置自动上传到 gtihub 图床,还需要做一些配置。

一、首先,在 github 上创建一个 token。

1、点击右上角账号上的 settings

img

2、然后左侧点击 developer settings ,再点击 personal access tokens ,然后点击 generate new token。

img

3、Note 用来说明你创建 token 的用途,然后 scopes 只需要选 repo 的所有选项即可。

img

4、最后拉到底部,点击 generate token ,即可成功。

img

5、找个地方记下这一串 token,等会需要用到。(如果没有记住,等再查看时就只能重新生成了)

img

二、打开 PicGo 配置 github 图床

在 PicGo 中,找到图床设置 -> GitHub图床。

  • 仓库名即为你的github账号/图片仓库名

  • 分支名就用默认的 main

  • Token 就填写刚才我们生成的 Token

  • 存储路径如果需要指定子目录可以填写例如 img/ 。我这里没有填,就会上传到我图片仓库的根目录。

  • 自定义域名就填写 jsDelivr 的域名,即图片访问地址,不包括图片路径的前半部分,我这里就是 https://cdn.jsdelivr.net/gh/starry-skys/myImages@main

  • 最后设为默认图床,下次在 typora 上传图片就会自动上传到 github 图床了。

img

至此,所有步骤就已经完成了,赶紧去尝试一下吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python extract的使用_Python extract及contains方法代码实例

一&#xff0c;extract方法的使用extract函数主要是对于数据进行提取。场景一般对于DataFrame中的一列中的数据进行提取的场合比较多。例如一列中包含了很长的字段&#xff0c;我们希望在这些字段中提取出我们想要的字段时&#xff0c;就可以通过extract方法进行数据的提取了。…

hexo-Fluid主题使用手册

hexo-Fluid主题使用手册 [官网] https://fluid-dev.github.io/hexo-fluid-docs/ 前言 Fluid 是一款很十分优雅的主题&#xff0c;那么写一篇优雅的文章搭配它呢&#xff1f;以下会从几个方面来简述&#xff0c;主要还是做几个推荐。 文章内容 熟悉 Markdown 语法 对于使…

怎么用python做战斗机_关于python文件操作

总是记不住API。昨晚写的时候用到了这些&#xff0c;但是没记住&#xff0c;于是就索性整理一下吧&#xff1a;python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录&#xff0c;即当前Python脚本工作的目录路径: os.getcwd()返回指定目…

Hexo-fluid主题设置统计博客阅读量

Hexo-fluid主题设置统计博客阅读量 开始小插曲&#xff1a; 我使用的是sublime文本编辑器&#xff1a; [官网] https://www.sublimetext.com/ 正戏开始 查找关键字&#xff1a;web_analytics (快捷键ctrlF) 这里我使用一个第三方服务Leancloud来统计文章的阅读量。 首先…

使用Hexo写博客

尽管 Hexo 支持 MarkDown&#xff0c;但是我们却不能像写单独的 MarkDown 文档时那样肆无忌惮。由于我们所写的文档是需要被解析为静态网页文件的&#xff0c;所以我们必须严格遵从 Hexo 的规范&#xff0c;这样才能解析出条理清晰的静态网页文件。新建文档 假设我们的文章名为…

mysql过滤效率和java过滤效率_如何合理选择初中高效过滤器的效率?

利菲尔特环保科技点击蓝字 关注我们 各种型号的空气过滤器有不同的标准和使用效率&#xff0c;今天利菲尔特为您介绍各种类型的空气过滤器在不同地方的应用。一般情况下&#xff0c;最末一级过滤器决定空气净化的程度&#xff0c;上游的各级过滤器只起保护作用&…

宝塔面板搭建autoPicCdn:一款基于jsdelivr-Github的免费CDN图床

autoPicCdn是白嫖Github的存储空间&#xff0c;通过jsdelivr全球加速(含有国内节点)。实现图床加速的目的。加速效果非常不错&#xff0c;用站长工具检测&#xff0c;也是一片绿油油&#xff0c;所以用来存储一些静态文件是最合适不过了。 相关文章&#xff1a;GithubjsDelivrP…

物流设计大赛优秀作品_中国外运杯第七届全国大学生物流设计大赛案例专家评审会在京召开...

2020年9月10日&#xff0c;“中国外运杯”第七届全国大学生物流设计大赛案例专家评审会在京召开。中国物流与采购联合会副会长任豪祥、中国物流与采购联合会原副会长、中国物流与采购联合会专家委员会主任戴定一、中国外运股份有限公司首席数字官高翔等有关领导及来自行业企业、…

WordPress博客网站搬家和换域名方法

WordPress博客网站搬家和换域名方法方案一 开设个人博客的朋友使用WordPress不在少数&#xff0c;那么也难免不了更换空间和域名的情况&#xff0c;由于笔者亲历了一次更换空间和域名的情况&#xff0c;将博客从AAA.com 更改为 BBB.com&#xff0c;所以本文就分享一下更换域名…

Hexo部署出现错误err-Error-Spawn-failed解决方式

Hexo部署出现错误err: Error: Spawn failed解决方式部署过程中可能会出现错误 fatal: unable to access https://github.com/a956551943/a956551943.github.io/: Encountered end of file FATAL {err: Error: Spawn failedat ChildProcess.<anonymous> (/usr/local/src/h…

python输出国际象棋棋盘_python输出国际象棋棋盘的实例分享

国际象棋是当今国际上最流行的智力体育运动项目。青年人下棋可以锻炼思维、增强记忆力和培养坚强的意志&#xff1b;中年人下棋可以享受美学&#xff1b;老年下棋可以很好的休息娱乐。国际象棋游戏有自己的规则&#xff0c;需要两个人将棋子落在棋盘上。棋子落在棋盘上事件&…

细思极恐---十年生死两茫茫,通信人,意欲亡。

每一位通信人&#xff0c;都可能面对过来自亲友的“灵魂三问”。 “通信究竟是什么&#xff1f;” “通信从哪里来&#xff1f;” “通信要往哪里去&#xff1f;” 讲真的&#xff0c;我不知道。。。。本篇博文是模仿codesheep羊哥写的&#xff0c;因为我们都学的通信&#x…

python矩阵运算dot_numpy中的dot矩阵乘法

本来以为这辈子都和数学没啥关系了&#xff0c;结果遇到了np.dot()。numpy中的“*”和“dot”运算是完全不同的&#xff0c;前者是直接计算&#xff0c;后者是矩阵相乘。(venv) [rootlocalhost tf]# pythonPython 3.4.5 (default, May 29 2017, 15:17:55)[GCC 4.8.5 20150623 (…

归并排序--Java

归并排序&#xff1a; 排序原理&#xff1a; 1、尽可能的一组数据拆分成两个元素相等的子组&#xff0c;并对每一个子组继续拆分&#xff0c;知道拆分后的每个子组的元素个数是1为止。 2、将相邻的两个子组进行合并成一个有序的大组 3、不断重复步骤2&#xff0c;直到最终只…

9008刷机模式写入超时刷机帮_刷机时没有成功,然后变成黑砖,usb接口直接变成未知设备~希望大神救助!...

线刷宝用户协议本协议是用户 (自然人、法人或社会团体)与杭州登先网络科技有限公司(以下简称"登先网络")之间关于"线刷宝"软件产品(以下简称"本软件产品")的法律协议。一旦安装、复制或以其他方式使用本软件产品&#xff0c;即表示同意接受协议各…

希尔排序--Java

希尔排序 排序原理&#xff1a; 1、选定一个增量h&#xff0c;按照增长量h作为数据分组的依据&#xff0c;对数据进行分组 2、对分好组的每一组数据完成插入排序 3、减小增长量&#xff0c;最小减为1&#xff0c;重复第二步操作 其中&#xff0c;希尔排序确定增长量h的规则…

插入排序--Java

插入排序&#xff1a; 原理&#xff1a; 1、把所有的元素分为两组&#xff0c;已经排序的和未排序的 2、找到未排序的组中的第一个元素&#xff0c;向已经排序的组中进行插入 3、倒叙遍历已经排序的元素&#xff0c;依次和待插叙的元素进行比较&#xff0c;直到找到一个元素…

redis 缓存预热_Redis:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级

一、缓存雪崩缓存雪崩我们可以简单的理解为&#xff1a;由于原有缓存失效&#xff0c;新缓存未到期间(例如&#xff1a;我们设置缓存时采用了相同的过期时间&#xff0c;在同一时刻出现大面积的缓存过期)&#xff0c;所有原本应该访问缓存的请求都去查询数据库了&#xff0c;而…

用接口写冒泡排序

用接口写冒泡排序&#xff1a; package demo02.maopaoapi.Bubble; public class Bubble {/***对数组a中的元素进行排序*/public static void sort(Comparable[] a){for (int i a.length-1; i >0; i--) {for (int j 0; j < i; j) {//比较索引j和索引j1处的值if (greate…

vue 根据swagger 生成接口_采用vue编写的功能强大的swagger-ui页面

think-swagger-ui-vueleswagger-ui有非常多的版本&#xff0c;觉得不太好用&#xff0c;用postman&#xff0c;每个接口都要自己进行录入。所以在基于think-vuele进行了swagger格式json的解析&#xff0c;自己实现了一套swaggerui界面。swagger分为后端数据提供方方和前端页面展…