本文介绍GitHub API基础及上传文件到仓库API,并应用API将GitHub作为图床

GitHub API官方页面

GitHub API版本

当前版本为v3,官方推荐在请求头中显示添加版本标识。

Accept: application/vnd.github.v3+json

Postman示例如图:

请求认证

  • 基础认证|Basic authentication

shell示例:

curl -u "username" https://api.github.com

Postman示例如图:

  • 令牌认证|OAuth2 token (sent in a header)

shell示例:

curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com

Postman示例如图:

主API,获取所有API

请求API:

GET https://api.github.com

这个API返回常见API

Postman示例如图:

公开仓库查询API

请求API:

GET https://api.github.com/user/repos

header:

name value
Accept application/vnd.github.v3+json
Authorization token空格oauth_token

Postman示例如图:

仓库创建API

请求API:

POST https://api.github.com/user/repos

headers:

  • Accept : application/vnd.github.v3+json

  • Authorization : token空格oauth_token|

请求体|Request body:

name,代表仓库名,必须。其他的可选参数参看官方文档

{
"name":"imgs"
}

Postman示例如图:

为仓库上传/更新文件API

请求API:

PUT https://api.github.com/repos/{user}/imgs/contents/{path}/{filename}
  • user:仓库所属用户名
  • path:上传文件存放的路径,如果文件夹不存在,会自动创建
  • filename:上传的文件名称

请求体|Request body:

{
"message": "提交说明",
"content": "base64编码的文件内容",
"sha": "文件的blob sha"
}

content:文件内容的base64编码后的字符串

sha:文件更新或删除时必填,先用GET接口查询文件信息,可在响应体中获取

Postman示例如图:

从仓库删除文件API

请求API:

DELETE https://api.github.com/repos/{user}/imgs/contents/{path}/{filename}
  • user:仓库所属用户名
  • path:上传文件存放的路径,如果文件夹不存在,会自动创建
  • filename:上传的文件名称

请求体|Request body:

{
"message": "提交说明",
"sha": "文件的blob sha"
}

sha:文件更新或删除时必填,先用GET接口查询文件信息,可在响应体中获取

token的生成

token需要在GitHub网站上右上角Settings中去生成,生成后需要立即保存。

  • 点击Settings

  • 点击Developer settings

  • 点击Personal access tokens

  • 点击Generate new token,生成token并记录

仓库作为图床

仓库要想作为图床,图床的前提是文件内容能外链使用,需要将其作为GitHub Pages才能实现。

将仓库作为图床的整体操作步骤如下:

  • 1 创建一个仓库,将添加一个index.html

由于我们要将此仓库作为图床,所以虽不需要静态网站相关内容,但为了GitHub能将此仓库识别为GitHub Pages,还是至少需要一个index.html在仓库中。(当然,你也可以找寻一个静态网站模板放进仓库)

index.html示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width-device-width,initial-scale-1">
<title>Images</title>
</head>
<body></body>
</html>

示例如图:

  • 2 将此仓库配置为GitHub Pages

相关配置可以参看多项目部署为同一个GitHub Pages

开启GitHub Pages成功后,当前仓库文件就可通过GitHub Pages地址访问,图中示例为https://dev2007.github.io/imgs

  • 3 将图片上传到仓库中

{仓库}/{路径}/{文件名}

示例如图:

  • 4 获取图片链接,使用链接

链接格式为:https://{Pages域名}/{仓库}/{路径}/{文件名}

示例地址:https://dev2007.github.io/imgs/myfolder/panda.png

示例如图:

  • 5 使用自定义域名,配置好后Pages域名换为自定义域名即可

相关GitHub Pages配置域名,可参看用GitHub Pages搭建博客(五)

  • 6 CDN加速

可以使用Vercel进行加速,可参看用GitHub Pages搭建博客(六)

Demo图床

最后是我搭建的一个Demo图床,可以访问,后续还将添加网页图片上传功能,欢迎查看:图床

欢迎关注我的博客:阿呜的边城

欢迎关注我的公众号:阿呜的编程

题图来源 :unsplash

使用GitHub API上传文件及GitHub做图床的更多相关文章

  1. MAC 上传文件到github

    在IOS中,经常需要上传文件到github.以桌面上的一个文件夹为例: 步骤1: cd 到该文件夹下,建立POD文件. $ cd /Users/andy/Desktop/openinstallSDK ...

  2. Git在windows下上传文件至github流程

    github是开发者分享的一个平台,这里不多说,想要上传文件至github需要有一个开发者账号,还需要在windows下安装好了git. 做好准备工作之后,接下来操作 一:登录github,创建项目 ...

  3. Git学习笔记——从一台电脑上传文件到Github上

    目标:从一台电脑上传文件到Github上 前提: 1.这里假定已在Github上创建了仓库,建立了仓库 2.已在这台电脑上安装了Git客户端 实验环境: 1.Windows 10 64位,已安装了Gi ...

  4. 演示如何通过 web api 上传文件MVC40

    演示如何通过 web api 上传文件WebApiWebFormHost/UploadFileController.cs /* * 通过 web api 上传文件 */ using System; u ...

  5. 返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, .net 4.5 带来的更方便的异步操作

    原文:返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, ...

  6. php 下 html5 XHR2 + FormData + File API 上传文件

    FormData的作用: FormData对象可以帮助我们自动的打包表单数据,通过XMLHttpRequest的send()方法来提交表单.当然FormData也可以动态的append数据.FormD ...

  7. 关于初学者上传文件到github的方法

    转:http://blog.csdn.net/steven6977/article/details/10567719 说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传 ...

  8. 『网络の转载』关于初学者上传文件到github的方法

    说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...

  9. git上传文件到github与gulp的简单使用

    git有两种方式提交源代码到github 第一种方式通过地址提交下面介绍的是通过ssh方式上传 git使用ssh方式上传代码到githubgit首先要生成公钥和私钥 将公钥添加到github中将私钥保 ...

随机推荐

  1. Cypress系列(65)- 测试运行失败自动重试

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 重试的介绍 学习前的三问 什么是重试测试 ...

  2. 扫描仪扫描文件处理-Photoshop批处理内存不足问题解决

    一次批处理上千张扫描图片,如果提示内存不足,这时候需要修改操作系统虚拟内存.最小值:512(512M),最大值建议51200(50G). 同时设置让Photoshop使用100%. 

  3. 数据查询语句:DQL(Data Query Language)

    一.基础查询 1.语法:select 查询列表 from 表名; 2.特点:1.通过select查询完的结果,是一个虚拟的表格,不是真实存在   2.查询列表可以是:字段.表达式.常量.函数等   3 ...

  4. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Keil MDK工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash ...

  5. DockerFile系统的学习

    1.背景 DockerFile定义:用来构建Docker镜像的文件,有脚本命令组成. 自定义镜像并运行步骤:编写dockerFile文件-->docker build为镜像-->docke ...

  6. go 不停模拟 写日志

    package main import ( "os" "errors" "math/rand" "time" " ...

  7. sql 删除所有存储过程

    1.执行以下sql语句即可删除所有存储过程 --/**********删除所有存储过程*************************/-- use 数据库名 go declare @tname v ...

  8. MySQL字段添加注释,但不改变字段的类型

    之前在导数据库数据的时候,忘记将字段的注释导过来了.现在需要将所有字段都加上注释(崩溃).由于导数据的过程比较长,业务那边从原始数据库导出了一个 Excel,里面有所有字段的注释,然后让我们根据这个注 ...

  9. Python之数据类型总结

    1.字符串 2.数字 3.列表 4.元组 5.字典 可变 or 不可变 1:可变:列表.字典 2:不可变:字符串,数字,元组 访问顺序 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射访 ...

  10. 深入理解Java的抽象类和接口

    对于面向对象来说,抽象是其重要特征之一.对于之中的抽象类和接口,两者有很多相似的地方,又有两者之间区别的地方. 用几个简单的例子让你快速的理解两者之间的概念和区别 鸣谢 一.抽象类 在了解抽象类之前, ...