github图床实现原理

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参数
{
  "message": "test",
  "content": "base64编码的图片"
}

即可上传图片。

image-20210429145328874

现在图片是上传了,那我们如果获取链接呢?

别着急我们往下看。

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就是图片地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值