You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AzureDevOps Services REST API上传二进制文件至Git LFS?

Azure DevOps REST API 上传Git LFS文件并更新引用的实现方法

Azure DevOps Services REST API支持通过Git LFS上传大文件的操作,需要结合Git LFS标准流程和Azure DevOps特定API端点完成,具体步骤如下:

步骤1:获取LFS对象的上传地址

调用Git LFS的批量上传端点,请求Azure DevOps返回文件的存储地址:

  • 请求URL:https://dev.azure.com/{组织名}/{项目名}/_git/{仓库名}/info/lfs/objects/batch
  • 请求方法:POST
  • 请求Header:
    • Authorization: Basic {base64编码的个人访问令牌(PAT)}
    • Content-Type: application/vnd.git-lfs+json
  • 请求体示例:
{
  "operation": "upload",
  "objects": [
    {
      "oid": "文件的SHA-256哈希值",
      "size": 文件字节大小
    }
  ]
}

响应会返回目标文件的上传URL(href字段)和对应的请求Header,需保存这些信息用于后续上传。

步骤2:上传二进制文件到LFS存储

使用步骤1获取的上传URL,发送PUT请求上传文件内容:

  • 请求方法:PUT
  • 请求Header:使用步骤1响应中返回的headers(通常包含授权信息)
  • 请求体:二进制文件的原始内容

步骤3:创建Git仓库中的LFS引用文件

通过Azure DevOps的Git推送API创建或更新仓库中的LFS指针文件(这是一个文本文件,用于指向LFS存储中的真实文件):

  • 请求URL:https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库ID}/pushes?api-version=7.1-preview.2
  • 请求方法:POST
  • 请求Header:Authorization: Basic {base64编码的PAT}
  • LFS指针格式(需替换为对应文件的哈希和大小):
version https://git-lfs.github.com/spec/v1
oid sha256:{文件的SHA-256哈希值}
size {文件字节大小}
  • 请求体示例:
{
  "refUpdates": [
    {
      "name": "refs/heads/main",
      "oldObjectId": "当前分支的最新commit ID"
    }
  ],
  "commits": [
    {
      "comment": "添加LFS大文件",
      "changes": [
        {
          "changeType": "add",
          "item": {
            "path": "/目标路径/你的大文件.bin"
          },
          "newContent": {
            "content": "version https://git-lfs.github.com/spec/v1\noid sha256:abcdef123456...\nsize 123456789",
            "contentType": "rawtext"
          }
        }
      ]
    }
  ]
}

注意事项

  • 确保项目已启用Git LFS功能,仓库已完成LFS初始化
  • 务必准确计算文件的SHA-256哈希值和字节大小,否则会导致LFS关联失败
  • 使用的PAT需要具备仓库的Contribute权限
  • 调用LFS批量端点时,Content-Type必须设置为application/vnd.git-lfs+json

内容的提问来源于stack exchange,提问作者JhonRM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:07:44