使用curl命令上傳壓縮包到GitLab

使用 curl 命令上傳壓縮包到 GitLab 是一種非常高效且簡潔的方式。以下是具體操作步驟:

下載并安裝 curl 工具

  1. 前往 curl 官網(wǎng) 下載適合您操作系統(tǒng)的版本。
  2. 安裝完成后,在命令行中輸入 curl --version,驗證安裝是否成功。

準(zhǔn)備上傳的文件

在開始上傳之前,需要準(zhǔn)備好要上傳的壓縮包文件。例如:將文件 e.zip 放置在以下路徑:

C:UserskjDesktopgitlab交付源碼curl-win64-latestcurl-8.12.0_1-win64-mingwe.zip

執(zhí)行上傳命令

打開文件所在路徑的命令窗口,執(zhí)行以下命令:

curl --location --header "PRIVATE-TOKEN: glpat-iAKchYsWdSKA-W47jL6D" --upload-file C:UserskjDesktopgitlab交付源碼curl-win64-latestcurl-8.12.0_1-win64-mingwe.zip "https://gyleasegit.kjlink.com/api/v4/projects/29/packages/generic/dev/20250206/e.zip"

執(zhí)行成功后,會返回 {"message":"201 Created"}。

GitLab上傳成功示例


創(chuàng)建AccessToken用于上傳驗證

在 GitLab 中,每次上傳都需要提供一個具有權(quán)限的 Access Token。以下是創(chuàng)建 Access Token 的具體步驟:

登錄并訪問設(shè)置頁面

  1. 登錄 GitLab,點擊右上角頭像,選擇 Settings。
  2. 進入 Access Tokens 菜單。

創(chuàng)建個人 Access Token

  1. 輸入 Token 名稱,例如 UploadToken
  2. 選擇權(quán)限:勾選 apiwrite_repository。
  3. 點擊 Create personal access token 按鈕。
  4. 系統(tǒng)會生成一個 Token,務(wù)必保存下來,否則頁面刷新后無法再次查看。

Access Token 創(chuàng)建示例

Token 管理

可以隨時回收 Token。點擊 Revoke 即可停止該 Token 的有效性。

Access Token 回收示例


通過腳本實現(xiàn)自動化批量上傳

如果需要頻繁上傳多個文件,可以編寫腳本實現(xiàn)批量化操作。

編寫上傳腳本

以下是一個 Bash 腳本示例:

#!/bin/bash
if [ -z "$version" ]; then
  echo "no version was given"
  exit 1
fi
if [ -z "$access_token" ]; then
   echo "no access_token was given"
   exit 1
fi
if [ -z "$package" ]; then
  echo "no release package path was given"
  exit 1
fi
if [ -z "$projectId" ]; then
  echo "no project Id was given"
  exit 1
fi
binaries=($package)
baseUrl=http://192.168.1.110:8929
for binary in "${binaries[@]}"; do
    name=$(basename "$binary")
    res=$(curl --request POST --header "PRIVATE-TOKEN: $access_token" --form "file=@$binary" "$baseUrl/api/v4/projects/$projectId/uploads")
    fullpath=$(echo $res | grep -oP '"full_path":"K[^"]*')
    if [ ! -z "$fullpath" ]; then
        curl --header "Content-Type: application/json" --request POST --header "PRIVATE-TOKEN: $access_token" --data "{ "id": "$name", "name":"$name","url":"$baseUrl/$fullpath"}"   "$baseUrl/api/v4/projects/$projectId/releases/$version/assets/links"
    fi
done

使用腳本上傳

將上述腳本命名為 publish.sh,并在 .gitlab-ci.yml 文件中調(diào)用:

stages:
  - publish

publish:
  stage: publish
  script:
    - chmod +x ./publish.sh
    - ./publish.sh
  only:
    refs:
      - tags

GitLabPipeline中調(diào)用上傳腳本

GitLab CI/CD 提供了強大的流水線功能,可以將上傳腳本集成到流水線中。

配置 GitLab CI 文件

以下是一個 .gitlab-ci.yml 示例:

stages:
  - publish

upload:
  stage: publish
  script:
    - export package=
    - export version=$CI_COMMIT_TAG
    - export access_token=
    - export projectId=
    - ./upload.sh
  only:
    refs:
      - tags

流水線觸發(fā)與驗證

當(dāng)推送新的 Tag 時,流水線會自動觸發(fā),并完成包文件的上傳。

流水線觸發(fā)示例


不同環(huán)境和版本的包管理配置

在使用 GitLab Package Registry 時,環(huán)境和版本的管理至關(guān)重要。

環(huán)境分類

版本命名規(guī)則

建議使用日期或版本號作為命名規(guī)則,例如:

配置示例

在上傳命令中指定路徑:

curl --location --header "PRIVATE-TOKEN: xxxxxx" --upload-file xxx.zip "http://gitlabUrl/api/v4/projects/88/packages/generic/prod/20250205/xxx.zip"

驗證上傳結(jié)果并查看文件信息

上傳完成后,需要驗證文件是否成功上傳。

驗證上傳狀態(tài)

執(zhí)行上傳命令后,查看返回的響應(yīng),確保包含:

{"message":"201 Created"}

查看文件信息

登錄 GitLab,進入目標(biāo)項目,導(dǎo)航至 "部署 > 軟件包庫",即可看到剛剛上傳的文件。

軟件包庫查看示例

使用下載命令驗證

使用以下命令下載文件,檢查文件是否正確:

curl -s -O --header "PRIVATE-TOKEN: ${token}" "http://${gitlab}/api/v4/projects/${project_id}/packages/generic/${name}/${version}/${file}"

上傳和下載的驗證工作至關(guān)重要,能夠確保文件的完整性和可用性。

FAQ

問:什么是 GitLab 的 Package Registry?

問:如何使用 curl 命令上傳壓縮包到 GitLab?

問:如何創(chuàng)建 GitLab 的 Access Token 用于上傳驗證?

問:如何通過腳本實現(xiàn)自動化批量上傳文件到 GitLab?

問:如何驗證上傳是否成功并查看上傳的文件信息?

上一篇:

Go調(diào)用GitLabAPI的全面指南

下一篇:

GitLab的API調(diào)用指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費