使用其他構件格式

本頁說明如何在 Artifact Registry 通用格式存放區中,儲存不遵循任何特定套件格式的版本化不可變更成果。

如要熟悉在 Artifact Registry 中儲存一般構件的操作,可以試試快速入門

一般構件是任何格式的檔案,包括但不限於:

  • 壓縮檔案,例如 tar 檔案和 ZIP 檔案
  • 設定檔,例如 YAML 和 TOML 檔案
  • 文字檔和 PDF
  • 二進位檔
  • 封存檔案
  • 媒體檔案

與其他格式不同,儲存在一般格式存放區中的構件並非供 Docker、套件管理工具或其他第三方用戶端使用。

事前準備

  1. 建立通用格式存放區
  2. 確認您具備存放區所需的權限
  3. (選用) 設定 Google Cloud CLI 指令的預設值

必要的角色

如要取得管理一般構件的必要權限,請要求管理員授予您存放區的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

上傳一般構件

您可以個別上傳一般性構件,也可以一次上傳多個構件。上傳時,必須指定套件名稱和版本號碼。您也可以在目的地檔案結構中指定上傳路徑。如果未指定目的地路徑,系統會預設將構件上傳至根層級。

如要將一般構件上傳至存放區,請執行下列指令:

gcloud

使用下列任何指令資料之前,請先替換以下項目:

  • PROJECT:您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
  • LOCATION:存放區的地區或多地區位置
  • REPOSITORY:儲存構件所在的存放區名稱。
  • SOURCE:您要上傳的檔案位置和名稱。
  • PACKAGE:您要上傳的檔案套件名稱。
  • VERSION:您要上傳的檔案版本。
  • 執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud artifacts generic upload \
        --project=PROJECT \
        --source=SOURCE \
        --package=PACKAGE \
        --version=VERSION \
        --location=LOCATION \
        --repository=REPOSITORY

    Windows (PowerShell)

    gcloud artifacts generic upload `
        --project=PROJECT `
        --source=SOURCE `
        --package=PACKAGE `
        --version=VERSION `
        --location=LOCATION `
        --repository=REPOSITORY

    Windows (cmd.exe)

    gcloud artifacts generic upload ^
        --project=PROJECT ^
        --source=SOURCE ^
        --package=PACKAGE ^
        --version=VERSION ^
        --location=LOCATION ^
        --repository=REPOSITORY
    上傳構件時,您可以使用其他標記:
    • --destination-path=PATH 上傳至套件和版本中的特定資料夾。並建立所有不存在的資料夾。
    • --source-directory=SOURCE_DIR 取代 --source 標記,並上傳目錄而非單一檔案。
    • --skip-existing 使用 --source-directory 標記跳過現有檔案時。否則,嘗試上傳已存在的檔案時,指令就會失敗。

    API

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT 是您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
    • LOCATION 是存放區的地區或多地區位置
    • REPOSITORY 是儲存構件所在的存放區名稱。
    • SOURCE 是您要上傳的檔案位置和名稱。
    • PACKAGE 是您要上傳檔案的套件名稱。
    • VERSION 是您上傳的檔案版本。
    • NAME 是檔案在存放區中的新名稱。

    HTTP 方法和網址:

      POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
    

    curl (Linux、macOS 或 Cloud Shell)

    如要傳送要求,請執行下列指令:

      curl -v \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -F "meta={'filename':'NAME','package_id':'PACKAGE','version_id':'VERSION'};type=application/json" \
          -F "blob=@SOURCE" \
          https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSTIORY/genericArtifacts:create?alt=json
    

    列出構件

    主控台

    您可以在Google Cloud 主控台中查看通用格式存放區的構件。

    1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

      開啟「存放區」頁面

    2. 在存放區清單中選取所需存放區。

    3. 按一下套件名稱。

    4. 如要查看所有套件版本的下載檔案,請按一下「Files」分頁。

    5. 如要查看特定套件版本的下載檔案,請依序按一下版本名稱和「檔案」分頁標籤。

    gcloud

    您可以使用 gcloud artifacts files list 指令列出存放區中的構件。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT:您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
    • LOCATION:存放區的地區或多地區位置
    • REPOSITORY:儲存構件所在的存放區名稱。

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud artifacts files list \
        --project=PROJECT \
        --location=LOCATION \
        --repository=REPOSITORY

    Windows (PowerShell)

    gcloud artifacts files list `
        --project=PROJECT `
        --location=LOCATION `
        --repository=REPOSITORY

    Windows (cmd.exe)

    gcloud artifacts files list ^
        --project=PROJECT ^
        --location=LOCATION ^
        --repository=REPOSITORY
    回應會包含檔案詳細資料,格式為 PACKAGE:VERSION:NAME
    FILE: my-package:1.0.0:hello.yaml
    CREATE_TIME: 2023-03-09T20:55:07
    UPDATE_TIME: 2023-03-09T20:55:07
    SIZE (MB): 0.000
    OWNER: projects/my-project/locations/us-central1/repositories/quickstart-generic-repo/packages/my-package/versions/1.0.0
    

    您也可以新增下列一或兩個標記,依版本和套件排序:

    • --package=PACKAGE 只顯示特定套件的檔案。
    • --version=VERSION 只顯示特定版本的檔案。

    下載一般構件

    如要從存放區下載一般構件,請執行下列指令:

    gcloud

    使用下列任何指令資料之前,請先替換以下項目:

    • DESTINATION:本機檔案系統中目的地資料夾的路徑。目標資料夾必須已存在,否則指令會失敗。
    • LOCATION:存放區的地區或多地區位置
    • REPOSITORY:儲存構件所在的存放區名稱。
    • PACKAGE:要下載的檔案套件。
    • VERSION:要下載的檔案版本。
    • NAME (選用):要下載的檔案名稱。如果沒有這個標記,指令會下載指定套件和版本的所有檔案,並在目的地建立必要的目錄。

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud artifacts generic download \
        --destination=DESTINATION \
        --location=LOCATION \
        --repository=REPOSITORY \
        --package=PACKAGE \
        --version=VERSION \
        --name=NAME

    Windows (PowerShell)

    gcloud artifacts generic download `
        --destination=DESTINATION `
        --location=LOCATION `
        --repository=REPOSITORY `
        --package=PACKAGE `
        --version=VERSION `
        --name=NAME

    Windows (cmd.exe)

    gcloud artifacts generic download ^
        --destination=DESTINATION ^
        --location=LOCATION ^
        --repository=REPOSITORY ^
        --package=PACKAGE ^
        --version=VERSION ^
        --name=NAME

    API

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT:您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
    • LOCATION:存放區的地區或多地區位置
    • REPOSITORY:儲存構件所在的存放區名稱。
    • DESTINATION:本機檔案系統中目的地資料夾的路徑。目的地資料夾必須已存在,否則指令會失敗。
    • FILE:已編碼的網址檔案名稱。您可以執行 gcloud artifacts files list 指令,然後複製 FILE 的值,即可找到這個值。必須將其轉換為網址編碼格式,才能執行此指令,例如 path/to/file.jar 需要輸入為 path%2Fto%2Ffile.jar

    HTTP 方法和網址:

    GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media

    如要傳送要求,請展開以下其中一個選項:

    下載作業應該會立即開始。

    刪除泛型構件

    如要從存放區刪除一般構件,請執行 gcloud artifacts files delete 指令。這項指令僅適用於一般格式存放區。

    使用下列任何指令資料之前,請先替換以下項目:

    • FILE:完整檔案名稱。您可以執行 gcloud artifacts files list 指令,然後複製 FILE 的值,即可找到這個值。
    • LOCATION:存放區的地區或多地區位置
    • REPOSITORY:儲存構件所在的存放區名稱。

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud artifacts files delete \
        FILE \
        --location=LOCATION \
        --repository=REPOSITORY

    Windows (PowerShell)

    gcloud artifacts files delete `
        FILE `
        --location=LOCATION `
        --repository=REPOSITORY

    Windows (cmd.exe)

    gcloud artifacts files delete ^
        FILE ^
        --location=LOCATION ^
        --repository=REPOSITORY

    後續步驟