curl POST gitlab API 给出 404
Curl POST gitlab API gives 404
我正在尝试使用 curl 将文件推送到我存储库中名为 "collections" 的文件夹。
我花了将近 2 天的时间调查问题,但我不确定确切的问题是什么。
curl -D- -k -X GET -H "PRIVATE-TOKEN: faNFKoC4-opiDJ0FJSk" https://gitlab.example.com/api/v4/projects/592/repository/tree?path=collections
获取请求正常工作,我得到了集合文件夹中的文件列表。
collections文件夹是我的gitlab仓库中的一个文件夹
但是当我尝试 POST 一个文件到完全相同的文件夹时,我得到 404:
curl -D- -k -X POST -H "PRIVATE-TOKEN: faNFKoC4-opiDJ0FJSk" -F "file=@C:/Documents/Folder_A/bp30_QA.csv" https://gitlab.example.com/api/v4/projects/592/repository/tree?path=collections
我是不是漏掉了一些参数? gitlab API 也对我帮助不大。
编辑:Bertrand Martel 的解决方案帮助我解决了问题
同样适用于 windows 在安装 jq
时遇到问题的所有人
jq is a lightweight and flexible command-line JSON processor.
安装巧克力:https://chocolatey.org/install
以管理员身份打开 powershell 并 运行:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装后,运行:
choco install jq
要create a new file在collections
文件夹中调用bp30_QA.csv
,可以使用如下:
curl -H 'PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN' \
-H "Content-Type: application/json" \
-d '{
"branch": "master",
"author_email": "johndoe@gmail.com",
"author_name": "John Doe",
"content": '"$(jq -Rs '.' bp30_QA.csv)"',
"commit_message": "create a new file"
}' "https://gitlab.com/api/v4/projects/592/repository/files/collections%2Fbp30_QA.csv"
它使用jq to wrap the content of the file in a single JSON field (check )
我正在尝试使用 curl 将文件推送到我存储库中名为 "collections" 的文件夹。 我花了将近 2 天的时间调查问题,但我不确定确切的问题是什么。
curl -D- -k -X GET -H "PRIVATE-TOKEN: faNFKoC4-opiDJ0FJSk" https://gitlab.example.com/api/v4/projects/592/repository/tree?path=collections
获取请求正常工作,我得到了集合文件夹中的文件列表。 collections文件夹是我的gitlab仓库中的一个文件夹 但是当我尝试 POST 一个文件到完全相同的文件夹时,我得到 404:
curl -D- -k -X POST -H "PRIVATE-TOKEN: faNFKoC4-opiDJ0FJSk" -F "file=@C:/Documents/Folder_A/bp30_QA.csv" https://gitlab.example.com/api/v4/projects/592/repository/tree?path=collections
我是不是漏掉了一些参数? gitlab API 也对我帮助不大。
编辑:Bertrand Martel 的解决方案帮助我解决了问题
同样适用于 windows 在安装 jq
时遇到问题的所有人jq is a lightweight and flexible command-line JSON processor.
安装巧克力:https://chocolatey.org/install
以管理员身份打开 powershell 并 运行:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装后,运行:
choco install jq
要create a new file在collections
文件夹中调用bp30_QA.csv
,可以使用如下:
curl -H 'PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN' \
-H "Content-Type: application/json" \
-d '{
"branch": "master",
"author_email": "johndoe@gmail.com",
"author_name": "John Doe",
"content": '"$(jq -Rs '.' bp30_QA.csv)"',
"commit_message": "create a new file"
}' "https://gitlab.com/api/v4/projects/592/repository/files/collections%2Fbp30_QA.csv"
它使用jq to wrap the content of the file in a single JSON field (check