通过BitBucket Server REST API向BitBucket仓库添加文件的方法咨询
Bitbucket Server 远程提交文件实现方案
是可以通过Bitbucket Server REST API直接向指定分支提交文件的,无需在文件服务器本地部署Git环境,具体实现步骤如下:
前置准备
- 申请具备目标仓库写权限的个人访问令牌(PAT)
- 确认目标仓库所属的项目KEY、仓库标识(slug)、提交目标分支名
核心提交接口使用
调用POST /rest/api/latest/projects/<项目KEY>/repos/<仓库slug>/commits接口即可完成单次提交,请求参数说明:
branch:必填,指定提交的目标分支名message:必填,填写本次提交的说明信息files:必填,数组格式,每个元素对应一个待提交的文件:path:文件在仓库内的完整存储路径,如assets/product/2024.xlsxcontent:文件内容,文本文件直接传原文即可,二进制文件需先编码为Base64格式encoding:内容编码格式,文本填plain,Base64编码的二进制文件填base64
调用示例
以下是curl调用的参考代码:
curl -X POST \ 'https://<你的Bitbucket服务域名>/rest/api/latest/projects/PRJ01/repos/file-storage/commits' \ -H 'Authorization: Bearer <替换为你的PAT>' \ -H 'Content-Type: application/json' \ -d '{ "branch": "main", "message": "sync: 同步2024年6月新增数据文件", "files": [ { "path": "data/202406.csv", "content": "id,name,amount\n1,测试产品,99.9", "encoding": "plain" } ] }'
注意事项
- 若需要覆盖仓库内已有文件,直接传入对应路径的新内容即可,接口会自动生成新版本提交记录
- 单次提交的文件总大小默认上限为10MB,超大文件可先调用blob分块上传接口,再将blob标识关联到提交请求中
- 若接口返回409状态码,说明目标分支存在冲突,需先拉取最新内容处理冲突后再重新提交
内容的提问来源于stack exchange,提问作者Bishal Paudel
相关产品推荐
相关产品推荐

