Curl POST gitlab API给出了404的提示

问题描述 投票:0回答:1

我试图用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

get请求正常工作,我得到了collections文件夹中的文件列表。collections文件夹是我的gitlab仓库中的一个文件夹,但是当我试图将一个文件推送到那个相同的文件夹时,我得到了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是一个轻量级且灵活的命令行JSON处理器。

安装choco.jq是一个轻量级、灵活的命令行JSON处理器。https:/chocolatey.orginstall)。

以管理员身份打开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
rest curl post gitlab gitlab-api
1个回答
1
投票

建档 叫做 bp30_QA.csvcollections 文件夹,你可以使用下面的。

curl -H 'PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN' \
     -H "Content-Type: application/json" \
     -d '{
        "branch": "master", 
        "author_email": "[email protected]", 
        "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"

它使用 将文件的内容封装在一个JSON字段中(查看 此职位)

© www.soinside.com 2019 - 2024. All rights reserved.