使用GitHub API上传文件及GitHub做图床

本文介绍GitHub API基础及上传文件到仓库API,并应用API将GitHub作为图床
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做图床的更多相关文章
- MAC 上传文件到github
在IOS中,经常需要上传文件到github.以桌面上的一个文件夹为例: 步骤1: cd 到该文件夹下,建立POD文件. $ cd /Users/andy/Desktop/openinstallSDK ...
- Git在windows下上传文件至github流程
github是开发者分享的一个平台,这里不多说,想要上传文件至github需要有一个开发者账号,还需要在windows下安装好了git. 做好准备工作之后,接下来操作 一:登录github,创建项目 ...
- Git学习笔记——从一台电脑上传文件到Github上
目标:从一台电脑上传文件到Github上 前提: 1.这里假定已在Github上创建了仓库,建立了仓库 2.已在这台电脑上安装了Git客户端 实验环境: 1.Windows 10 64位,已安装了Gi ...
- 演示如何通过 web api 上传文件MVC40
演示如何通过 web api 上传文件WebApiWebFormHost/UploadFileController.cs /* * 通过 web api 上传文件 */ using System; u ...
- 返璞归真 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 上传文件, ...
- php 下 html5 XHR2 + FormData + File API 上传文件
FormData的作用: FormData对象可以帮助我们自动的打包表单数据,通过XMLHttpRequest的send()方法来提交表单.当然FormData也可以动态的append数据.FormD ...
- 关于初学者上传文件到github的方法
转:http://blog.csdn.net/steven6977/article/details/10567719 说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传 ...
- 『网络の转载』关于初学者上传文件到github的方法
说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...
- git上传文件到github与gulp的简单使用
git有两种方式提交源代码到github 第一种方式通过地址提交下面介绍的是通过ssh方式上传 git使用ssh方式上传代码到githubgit首先要生成公钥和私钥 将公钥添加到github中将私钥保 ...
随机推荐
- spring boot:基于profile的多环境配置(spring boot 2.3.4)
一,为什么要进行多环境配置? 1,没有人会在生产环境中进行开发和测试, 所以通常会有多个环境的划分: 工程师本地的开发环境 进行测试的测试环境 最终上线的生产环境 每个环境对应不同的数据库/缓存等数据 ...
- JavaScript数字与字母相互转换
数字 转换为 字母: const num = 'a'.charCodeAt() // num = 97 字母 转换为 数字: var str = String.fromCharCode(97) // ...
- History和Screen的对象属性
History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问. 属性 说明 length 返回历史列表中的网址数 History 对象方法 方法 说明 b ...
- jmeter环境变量配置
参考博客:超全 https://blog.csdn.net/qq_39720249/article/details/80721777
- Unity-根据时间开灯与关灯
声明:本人只是学生,并且只是自学Unity,如有大神,不喜勿喷,不足之处,请指出! 本项目使用了UniStorm 3.0(天气)插件,时间也是调用它本身的API,实际并不影响,用系统的时间的是也是可以 ...
- nrm切换npm源
使用 nrm 提供了一些最常用的npm包镜像地址,能够让我们快速的切换安装包时候的服务器地址: 全局安装nrm包 npm i nrm -g 查看当前所有可用的镜像源地址以及当前所使用的镜像源地址 nr ...
- 项目 git 仓库允许服务器访问
我们 deployer 的运行机制是从 git 或者其它你指定的代码库 clone 代码到目标服务器,所以如果你的代码不是公开的仓库,我们通常需要添加 SSH 公钥才可以从代码库 clone 代码,所 ...
- Hive源码解析
date: 2020-07-08 15:12:00 updated: 2020-08-21 17:38:00 Hive源码解析 入口:hive-cli-1.1.0-cdh5.14.4.jar!/org ...
- C语言之 判断语句基础与if语句反汇编
0x01.判断语句介绍以及用法 判断语句有哪些? 1.If 用法1: if (条件) { //代码块 } 当条件成立,也就是为True时,执行{}中的代码 用法2: if(条件) { //代码块 } ...
- 初识ABP vNext(12):模块的独立运行与托管
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 模块运行 动态 C# API 客户端 最后 前言 很久没更新这个系列...之前的章节中讲到ABP的模块是可以独立运行的 ...