github图床实现原理
简而言之:
- 上传
- 指定用户名
- 仓库
- token
- 图片名称即可
- put请求
- 获取
- get请求
- 图片链接字段为:download_url
1.上传图片
在github的官网可以查到上传文件的api如下;
- https://api.github.com/repos/{users}/{repo}/contents/{path}
- 其中url参数
- users:你的github名称
- repo:仓库
- path:你文件的路径
- put请求
- json参数
- 其中url参数
{
"message": "test",
"content": "base64编码的图片"
}
即可上传图片。
现在图片是上传了,那我们如果获取链接呢?
别着急我们往下看。
2.获取生成的链接
https://api.github.com/repos/{users}/{repo}/contents/{path}
- 其中url参数
- users:你的github名称
- repo:仓库
- path:你文件的路径
- get请求
返回的结果:
{
"name": "1.jpg",
"path": "mian/test1/1.jpg",
"sha": "3d9993c3664adb8f40542006b91c83f491ee4b73",
"size": 30211,
"url": "https://api.github.com/repos/xvzhifeng/typoraFile/contents/mian/test1/1.jpg?ref=main",
"html_url": "https://github.com/xvzhifeng/typoraFile/blob/main/mian/test1/1.jpg",
"git_url": "https://api.github.com/repos/xvzhifeng/typoraFile/git/blobs/3d9993c3664adb8f40542006b91c83f491ee4b73",
"download_url": "https://raw.githubusercontent.com/xvzhifeng/typoraFile/main/mian/test1/1.jpg?token=ALXVKN24VO2PP3LFO6BC2PLARFIDM",
"type": "file",
"content": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL\nDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/\n2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy\nMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAEsAhUDAREAAhEBAxEB/8QA\nGwAAAQUBAQ"
"encoding": "base64",
"_links": {
"self": "https://api.github.com/repos/xvzhifeng/typoraFile/contents/mian/test1/1.jpg?ref=main",
"git": "https://api.github.com/repos/xvzhifeng/typoraFile/git/blobs/3d9993c3664adb8f40542006b91c83f491ee4b73",
"html": "https://github.com/xvzhifeng/typoraFile/blob/main/mian/test1/1.jpg"
}
}
其中download_url就是图片地址。