本頁說明如何在 Artifact Registry 通用格式存放區中,儲存不遵循任何特定套件格式的版本化不可變更成果。
如要熟悉在 Artifact Registry 中儲存一般構件的操作,可以試試快速入門。
一般構件是任何格式的檔案,包括但不限於:
- 壓縮檔案,例如 tar 檔案和 ZIP 檔案
- 設定檔,例如 YAML 和 TOML 檔案
- 文字檔和 PDF
- 二進位檔
- 封存檔案
- 媒體檔案
與其他格式不同,儲存在一般格式存放區中的構件並非供 Docker、套件管理工具或其他第三方用戶端使用。
事前準備
- 建立通用格式存放區。
- 確認您具備存放區所需的權限。
- (選用) 設定 Google Cloud CLI 指令的預設值。
必要的角色
如要取得管理一般構件的必要權限,請要求管理員授予您存放區的下列 IAM 角色:
-
查看構件:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
下載構件:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
將構件上傳至存放區:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
刪除構件:
Artifact Registry 存放區管理員 (
roles/artifactregistry.repoAdmin
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
上傳一般構件
您可以個別上傳一般性構件,也可以一次上傳多個構件。上傳時,必須指定套件名稱和版本號碼。您也可以在目的地檔案結構中指定上傳路徑。如果未指定目的地路徑,系統會預設將構件上傳至根層級。
如要將一般構件上傳至存放區,請執行下列指令:
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 主控台中查看通用格式存放區的構件。
在 Google Cloud 控制台中開啟「Repositories」頁面。
在存放區清單中選取所需存放區。
按一下套件名稱。
如要查看所有套件版本的下載檔案,請按一下「Files」分頁。
如要查看特定套件版本的下載檔案,請依序按一下版本名稱和「檔案」分頁標籤。
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
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