从 GitHub 上获取文件内容

简介: 从 GitHub 上获取文件内容

我依稀记得 Java 的 Spring Cloud 中有一个重要的部分就是集中配置:

如图所示,将后台服务的配置文件集中存储于远程的 GitHub 库,然后通过配置服务去拉取库中的配置信息,而不同的微服务则统一通过配置服务获取其需要的配置信息。


集中配置有什么好处? 假设我们后台的三个应用程序都是操作同一个数据库,而某一天这个数据库的账号密码被修改了或者干脆迁移到了另一个库,如果没有集中配置我们就不得不在每一个程序中修改数据库的配置,反之,如果使用了集中配置的方式,我们就只需要修改一次配置文件即可。


当然 GitHub 作为一个开放的平台用来存储配置文件完全没问题,而存储了之后怎么读取呢,这才是我想说的内容,也是本文的标题:从 GitHub 上获取文件内容。




01


Developer API



如何从 GitHub 上获取文件内容,我的第一反应是爬虫啊,地址都知道直接爬就行了嘛,没错,爬虫没问题啊,但是爬下来还需要额外去抓取指定标签才能获取到你想要的内容,而直接使用 GitHub 提供的 API 接口显然更方便。

这里我们使用 REST API v3 版本,地址:https://developer.github.com/v3/



获取指定库中文件内容的接口文档:


示例:


上述内容对公开库没问题,但是如果是私有库呢,我们就必须加上认证信息了。



02


私有库认证


私有库操作必须经过认证,而对于认证,最基础的 Basic Authentication,也就是输入用户名和密码:



然而,这种明文的用户名和密码显然不够安全。


OAuth 认证:我想用自己的微信直接登录另一个第三方应用进行操作怎么办,这时第三方应用就必须向微信进行认证授权,这就是 OAuth 认证的一种使用场景。而这里我们并没有第三方的参与,因此 OAuth 认证不太适合。


那么有没有一种更适合的认证方式呢,当然有啊! GitHub 有另一种专门的认证方式:Personal Access Token 。


为此,我们需要进入 settings  -> Developer settings -> Personal access tokens 进行配置:

 

点击创建新的tokens,填写描述信息,并添加 repo 的操作权限:



成功创建后生成 token(红色注掉的字符串):


图示中我创建了一个 config for mysql 的 token,对私有库操作时只需要加上这个 token 就可以进行认证了:

上述 token 是可以随时更新和删除的,显然更好用。


本文简单描述了如何从 GitHub 上获取文件内容,完。

目录
相关文章
|
1月前
|
网络协议 Linux Android开发
解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
194 1
|
1月前
|
开发工具 git
把文件移动到在github上新建的文件
把文件移动到在github上新建的文件
|
1月前
|
弹性计算 Java API
阿里云OpenAPI的依赖文件通常在阿里云官方文档或者SDK的GitHub仓库中可以找到
【1月更文挑战第5天】【1月更文挑战第21篇】 阿里云OpenAPI的依赖文件通常在阿里云官方文档或者SDK的GitHub仓库中可以找到
129 1
|
1月前
|
域名解析 网络协议 测试技术
[插件使用] SwitchHosts自动更新Github Hosts文件
[插件使用] SwitchHosts自动更新Github Hosts文件
505 0
|
1月前
|
开发工具 git
【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件
【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件
26 5
|
1月前
|
缓存 网络安全 开发工具
【尝试】域名验证:配置github二级目录下的txt文件
【尝试】域名验证:配置github二级目录下的txt文件
40 2
|
1月前
|
安全 网络安全 开发工具
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
21 2
|
1月前
|
Linux API 开发者
【专栏】掌握`curl`能提升开发效率和解决问题的能力
【4月更文挑战第28天】本文介绍了如何使用`curl`命令从GitHub下载文件。基础操作包括获取文件的克隆URL,打开终端输入`curl -O <file_clone_url>`,执行命令以下载文件。文章还提及了代理设置、认证和错误处理等高级应用,帮助开发者更高效地管理代码和资源。掌握`curl`能提升开发效率和解决问题的能力。
|
1月前
|
程序员
借用GitHub将typora图片文件快速上传CSDN
借用GitHub将typora图片文件快速上传CSDN
|
1月前
|
JavaScript Ubuntu 网络安全
使用github actions,将私有仓库的构建文件发布到另一个公开仓库,并同步到gitee
使用github actions,将私有仓库的构建文件发布到另一个公开仓库,并同步到gitee
159 0