{"meta":{"title":"Git Blob 的 REST API 端点","intro":"使用 REST API 与 Git blob（二进制大型对象）交互，该对象类型用于将每个文件的内容存储在存储库中。","product":"REST API","breadcrumbs":[{"href":"/zh/enterprise-server@3.20/rest","title":"REST API"},{"href":"/zh/enterprise-server@3.20/rest/git","title":"Git 数据库"},{"href":"/zh/enterprise-server@3.20/rest/git/blobs","title":"Blob"}],"documentType":"article"},"body":"# Git Blob 的 REST API 端点\n\n使用 REST API 与 Git blob（二进制大型对象）交互，该对象类型用于将每个文件的内容存储在存储库中。\n\n## 关于 Git Blob\n\nGit Blob（二进制大对象）是用于将每个文件的内容存储在仓库中的对象类型。 文件的 SHA-1 哈希在 Blob 对象中计算和存储。 这些端点允许你在 [](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects) 上读取和写入 Git 数据库中的 GitHub。 Blob 利用自定义媒体类型 有关 API 中的媒体类型使用的详细信息，请参阅 [REST API 入门](/zh/enterprise-server@3.20/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)。\n\n> \\[!NOTE]\n> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2022-11-28`. Curl examples below omit these standard headers for brevity.\n\n## Create a blob\n\n```\nPOST /repos/{owner}/{repo}/git/blobs\n```\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n* **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n#### Body parameters\n\n* **`content`** (string) (required)\n  The new blob's content.\n\n* **`encoding`** (string)\n  The encoding used for content. Currently, \"utf-8\" and \"base64\" are supported.\n  Default: `utf-8`\n\n### HTTP response status codes\n\n* **201** - Created\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n* **409** - Conflict\n\n* **422** - Validation failed\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X POST \\\n  http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/git/blobs \\\n  -d '{\n  \"content\": \"Content of the blob\",\n  \"encoding\": \"utf-8\"\n}'\n```\n\n**Response schema (Status: 201):**\n\n* `url`: required, string\n* `sha`: required, string\n\n## Get a blob\n\n```\nGET /repos/{owner}/{repo}/git/blobs/{file_sha}\n```\n\nThe content in the response will always be Base64 encoded.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw blob data.\napplication/vnd.github+json: Returns a JSON representation of the blob with content as a base64 encoded string. This is the default if no media type is specified.\n\nNote This endpoint supports blobs up to 100 megabytes in size.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n* **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n* **`file_sha`** (string) (required)\n\n### HTTP response status codes\n\n* **200** - OK\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n* **409** - Conflict\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/git/blobs/FILE_SHA\n```\n\n**Response schema (Status: 200):**\n\n* `content`: required, string\n* `encoding`: required, string\n* `url`: required, string, format: uri\n* `sha`: required, string\n* `size`: required, integer or null\n* `node_id`: required, string\n* `highlighted_content`: string"}