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

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

下載并安裝 curl 工具

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

準備上傳的文件

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

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

執行上傳命令

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

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"

執行成功后,會返回 {"message":"201 Created"}

GitLab上傳成功示例


創建AccessToken用于上傳驗證

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

登錄并訪問設置頁面

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

創建個人 Access Token

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

Access Token 創建示例

Token 管理

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

Access Token 回收示例


通過腳本實現自動化批量上傳

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

編寫上傳腳本

以下是一個 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 文件中調用:

stages:
  - publish

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

GitLabPipeline中調用上傳腳本

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

流水線觸發與驗證

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

流水線觸發示例


不同環境和版本的包管理配置

在使用 GitLab Package Registry 時,環境和版本的管理至關重要。

環境分類

版本命名規則

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

配置示例

在上傳命令中指定路徑:

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

驗證上傳結果并查看文件信息

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

驗證上傳狀態

執行上傳命令后,查看返回的響應,確保包含:

{"message":"201 Created"}

查看文件信息

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

軟件包庫查看示例

使用下載命令驗證

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

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

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

FAQ

問:什么是 GitLab 的 Package Registry?

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

問:如何創建 GitLab 的 Access Token 用于上傳驗證?

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

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

上一篇:

Go調用GitLabAPI的全面指南

下一篇:

GitLab的API調用指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

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

#AI深度推理大模型API

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

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