codeload.github.com 与 api.github.com 有何不同?
How is codeload.github.com different to api.github.com?
我正在浏览 next.js 存储库并注意到此功能可以从 GitHub 下载并提取模板,其中 tar:
export async function downloadAndExtractExample(
root: string,
name: string
): Promise<void> {
return await promisePipe(
got.stream('https://codeload.github.com/zeit/next.js/tar.gz/canary'),
tar.extract({ cwd: root, strip: 3 }, [`next.js-canary/examples/${name}`])
)
}
我在 Whosebug 上搜索,只找到了这个:
- GitHub Api download zip or tarball link
这是一个解释如何从 GitHub 中提取 tar.gz 的线程,但没有提及 "codeload" 子域。它与 "api" 有何不同?
GitHub API 提供了获取 URL 下载存档的最佳方式。当您在 URL 上发出 GET 请求时,它会将您重定向到 codeload.github.com
上的 URL。 codeload 是提供下载档案的服务,出于缓存原因,它位于自己的域中。
虽然可以直接使用代码加载 URL,但您通常希望使用 API URL,因为它可以更优雅地处理诸如身份验证之类的事情,并且代码加载 URL 私有存储库通常是短暂的。
我正在浏览 next.js 存储库并注意到此功能可以从 GitHub 下载并提取模板,其中 tar:
export async function downloadAndExtractExample(
root: string,
name: string
): Promise<void> {
return await promisePipe(
got.stream('https://codeload.github.com/zeit/next.js/tar.gz/canary'),
tar.extract({ cwd: root, strip: 3 }, [`next.js-canary/examples/${name}`])
)
}
我在 Whosebug 上搜索,只找到了这个:
- GitHub Api download zip or tarball link
这是一个解释如何从 GitHub 中提取 tar.gz 的线程,但没有提及 "codeload" 子域。它与 "api" 有何不同?
GitHub API 提供了获取 URL 下载存档的最佳方式。当您在 URL 上发出 GET 请求时,它会将您重定向到 codeload.github.com
上的 URL。 codeload 是提供下载档案的服务,出于缓存原因,它位于自己的域中。
虽然可以直接使用代码加载 URL,但您通常希望使用 API URL,因为它可以更优雅地处理诸如身份验证之类的事情,并且代码加载 URL 私有存储库通常是短暂的。