跳至主要内容
REST API 现在已版本化。 有关更多信息,请参阅“关于 API 版本控制”。

Git Blob 的 REST API 端点

使用 REST API 与 Git Blob(二进制大型对象)交互,Blob 是用于存储存储库中每个文件内容的对象类型。

关于 Git Blob

Git Blob(二进制大型对象)是用于存储存储库中每个文件内容的对象类型。文件的 SHA-1 哈希值将被计算并存储在 Blob 对象中。这些端点允许您读取和写入 GitHub 上的 Git 数据库中的Blob 对象。Blob 利用这些自定义媒体类型。有关 API 中媒体类型用法的更多信息,请参阅“REST API 入门”。

创建 Blob

“创建 Blob”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “内容”存储库权限(写入)

“创建 Blob”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

存储库的帐户所有者。名称不区分大小写。

repo 字符串 必填

存储库的名称,不含 .git 扩展名。名称不区分大小写。

主体参数
名称、类型、描述
content 字符串 必填

新 Blob 的内容。

encoding 字符串

用于 content 的编码。目前,支持 "utf-8""base64"

默认值: utf-8

“创建 Blob”的 HTTP 响应状态码

状态码描述
201

已创建

403

禁止

404

资源未找到

409

冲突

422

验证失败

“创建 Blob”的代码示例

请求示例

post/repos/{owner}/{repo}/git/blobs
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/git/blobs \ -d '{"content":"Content of the blob","encoding":"utf-8"}'

响应

状态:201
{ "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15" }

获取 Blob

响应中的 content 将始终为 Base64 编码。

此端点支持以下自定义媒体类型。有关更多信息,请参阅“媒体类型”。

  • application/vnd.github.raw+json:返回原始 Blob 数据。
  • application/vnd.github+json:返回 Blob 的 JSON 表示形式,其中 content 为 Base64 编码的字符串。如果未指定媒体类型,则为默认值。

注意 此端点支持大小高达 100 MB 的 Blob。

“获取 Blob”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “内容”存储库权限(读取)

如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。

“获取 Blob”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

存储库的帐户所有者。名称不区分大小写。

repo 字符串 必填

存储库的名称,不含 .git 扩展名。名称不区分大小写。

file_sha 字符串 必填

“获取 Blob”的 HTTP 响应状态码

状态码描述
200

确定

403

禁止

404

资源未找到

409

冲突

422

验证失败或端点已被滥用。

“获取 Blob”的代码示例

请求示例

get/repos/{owner}/{repo}/git/blobs/{file_sha}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/git/blobs/FILE_SHA

响应

状态:200
{ "content": "Q29udGVudCBvZiB0aGUgYmxvYg==", "encoding": "base64", "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", "size": 19, "node_id": "Q29udGVudCBvZiB0aGUgYmxvYg==" }