教你如何使用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,一经查实,立即删除!

相关文章

hexo-Fluid主题使用手册

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

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

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

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

归并排序--Java

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

选择排序--Java

选择排序&#xff1a;合适的元素放在合适的位置 1、每一次遍历的过程中&#xff0c;都假定第一个索引处的元素是最小值&#xff0c;和其他索引处的值依次进行比较&#xff0c;如果当前索引处的值大于其他某个索引处的值&#xff0c;则假定其他某个索引处的只为最小值&#xff…

Comparable接口的使用:(知识回顾)

Comparable接口的使用&#xff1a;&#xff08;知识回顾&#xff09; 1、定义一个学生类&#xff0c;具有年龄age和姓名username两个属性&#xff0c;并通过Comparable接口提供比较规则。 package demo02.sort; public class Student implements Comparable<Student>{p…

binary search(二分法)

binary search&#xff08;二分法&#xff09;&#xff1a; 代码&#xff1a; import java.util.Arrays;/*** 二分法查找元素*/ public class BinarySearch {public static void main(String[] args) {int[] arr {30,20,50,10,80,9,7,12,100,40,8};int searchWord 20;//要查…

冒泡排序--Java

1、冒泡排序 import java.util.Arrays; /*** 冒泡排序*/ public class Test01 {public static void main(String[] args) {int[] values {3,1,6,2,9,0,7,4,8,5};System.out.println("排序前数组&#xff1a;" Arrays.toString(values));int temp;for (int i 0; i …

Java_FileInputStream_读一个文件

Java_FileInputStream_读一个文件 代码: package demo01;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;public class FileInputStreamTest01 {public static void main(String[] args) {FileInputStream fis null;tr…

最大化窗口设置_Qt学习笔记4(窗口操作及插入图片)

窗口操作&#xff1a;Qt全屏显示函数 showFullScreen() Qt最大化显示函数 showMaximized()Qt最小化显示函数 showMinimized()Qt固定尺寸显示函数 resize(x,y)Qt设置最大尺寸函数 setMaximumSize(w,h)Qt设置最小尺寸函数 setMinimumSize(w,h)插入图片&#xff1a;Qt中没有Image组…

JDBC练习一

JDBC练习一 import java.sql.*;public class JDBCTest01 {public static void main(String[] args) {Connection conn null;Statement stmt null;try{// 1、注册驱动Driver driver new com.mysql.jdbc.Driver(); //多态&#xff0c;父类型引用指向子类型对象DriverManager.…

JDBC练习二

JDBC练习二 import java.sql.*; /*JDBC完成Delete */public class JDBCTest02 {public static void main(String[] args) {// 1、注册驱动// 2、获取连接// 3、获取数据库操作对象// 4、执行sql语句// 5、获取查询结果集// 6、释放资源Connection conn null;Statement stmt …