从 GitHub 上获取文件内容

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

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

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

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

01

Developer API

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

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

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

示例:

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

02

私有库认证

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

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

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

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

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

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

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

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

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

本文来自企鹅号 - Node全栈开发者媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏有困难要上,没有困难创造困难也要上!

Webpack2入门

2817
来自专栏木子昭的博客

npm script命令同时开启多个监听服务concurrently

最近在搭建一个静态页面偏多的网站, 用vue或React有点大材小用,使用纯html / css / js 又不好用, 于是就用npm手动搭建一个简单的本地开发...

702
来自专栏向治洪

自己动手实现一个Android Studio插件

在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,例如我们所熟知的butternife,selector,,GsonForm...

1616
来自专栏木子昭的博客

Webpack4 新手完全攻略

为了优化前端工程, 我们通常会将静态文件压缩,减少带宽占用; 将静态文件合并,减少http请求, webpack可以轻易实现静态文件的压缩合并以及打包的功能, ...

4299
来自专栏刺客博客

个人原创,ssr共享客户端(脚本转软件版)

1996
来自专栏liulun

JSP+Servlet+mysql简单示例【图文教程】

下载MYSQL:http://dev.mysql.com/downloads/ ? 下载安装版的 ? 然后安装(安装步骤就不详细说了) 安装好之后,点击托盘图标...

20310
来自专栏听雨堂

ASP.NET调用word开发环境下正常,iis下报错

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 800...

1646
来自专栏上善若水

013android初级篇之Android Studio 引用源码模块,jar及so文件

013android初级篇之Android Studio 引用源码模块,jar及so文件

472
来自专栏Jerry的SAP技术分享

Mac终端给命令设置别名alias的办法

在Mac里使用curl https://www.google.com,运行后得不到期望看到的google首页的HTML source code。

563
来自专栏子勰随笔

SDK设计心得之版本号

2067

扫码关注云+社区