Auf dieser Seite wird beschrieben, wie Sie versionierte, unveränderliche Artefakte, die keinem bestimmten Paketformat entsprechen, in Artifact Registry-Repositories im generischen Format speichern.
Generische Artefakte sind Dateien in einem beliebigen Format, einschließlich, aber nicht beschränkt auf die folgenden:
- Komprimierte Dateien wie TAR- und ZIP-Dateien
- Konfigurationsdateien wie YAML- und TOML-Dateien
- Textdateien und PDFs
- Binärprogramme
- Archive
- Mediendateien
Im Gegensatz zu anderen Formaten sind Artefakte, die in Repositories im generischen Format gespeichert sind, nicht für die Verwendung durch Docker, Paketmanager oder andere Drittanbieterclients vorgesehen.
Hinweis
- Erstellen Sie ein Repository im generischen Format.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
- Optional: Konfigurieren Sie die Standardeinstellungen für Google Cloud CLI-Befehle.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten generischer Artefakte benötigen:
-
Artefakte ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Artefakte herunterladen:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Artefakte in ein Repository hochladen:
Artifact Registry-Autor (
roles/artifactregistry.writer) -
Artefakte löschen:
Repository-Administrator für Artifact Registry (
roles/artifactregistry.repoAdmin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Generische Artefakte hochladen
Sie können generische Artefakte einzeln nach Datei oder mehrfach nach Verzeichnis hochladen. Beim Hochladen müssen ein Paketname und eine Versionsnummer angegeben werden. Sie können auch den Pfad in der Zieldateistruktur angeben, in die sie hochgeladen werden sollen. Wenn kein Zielpfad angegeben ist, werden Artefakte standardmäßig auf Stammebene hochgeladen.
Führen Sie den folgenden Befehl aus, um generische Artefakte in Ihr Repository hochzuladen:
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
PROJECT: Ihre Google Cloud
Projekt-ID.
Wenn Ihre Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter
Auf Domains beschränkte ProjekteLOCATION: der regionale oder multiregionale
Speicherort für das Repository.REPOSITORY: der Name des Repositorys, in dem das
Artefakt gespeichert ist.SOURCE: der Speicherort und der Name der Datei, die Sie
hochladen.PACKAGE: der Paketname der Datei, die Sie
hochladen.VERSION: die Version der Datei, die Sie hochladen.Führen Sie den folgenden Befehl aus:
Linux, macOS oder 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=PATHzum Hochladen in einen bestimmten Ordner innerhalb des Pakets und der Version. Außerdem werden alle Ordner erstellt, die nicht vorhanden sind.--source-directory=SOURCE_DIR, um das Flag--sourcezu ersetzen und ein Verzeichnis anstelle einer einzelnen Datei hochzuladen.--skip-existingbei Verwendung des Flags--source-directory, um bereits vorhandene Dateien zu überspringen. Andernfalls schlägt der Befehl fehl, wenn versucht wird, eine bereits vorhandene Datei hochzuladen.
API
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT ist Ihre Google Cloud
Projekt-ID. Wenn Ihre Projekt-ID einen Doppelpunkt (
:) enthält, siehe Auf Domains beschränkte Projekte - LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
- REPOSITORY ist der Name des Repositorys, in dem das Artefakt gespeichert ist.
- SOURCE ist der Speicherort und der Name von der Datei, die Sie hochladen.
- PACKAGE ist der Paketname der Datei, die Sie hochladen.
- VERSION ist die Version der Datei, die Sie hochladen.
- NAME ist der neue Name der Datei im Repository.
HTTP-Methode und URL:
POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
curl (Linux, macOS oder Cloud Shell)
Führen Sie den folgenden Befehl aus, um die Anfrage zu senden:
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/REPOSITORY/genericArtifacts:create?alt=json
Artefakte auflisten
Console
Sie können Artefakte für Repositories im generischen Format in der Google Cloud Console ansehen.
Öffnen Sie in der Google Cloud console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus.
Klicken Sie auf den Namen des Pakets.
Wenn Sie herunterladbare Dateien für alle Paketversionen ansehen möchten, klicken Sie auf den Tab Dateien.
Wenn Sie herunterladbare Dateien für eine bestimmte Version Ihres Pakets ansehen möchten, klicken Sie auf den Versionsnamen und dann auf den Tab Dateien.
gcloud
Sie können Artefakte in einem Repository mit dem Befehl gcloud artifacts files list auflisten.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
PROJECT: Ihre Google Cloud Projekt-ID. Wenn Ihre Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte ProjekteLOCATION: der regionale oder multiregionale Speicherort für das Repository.REPOSITORY: der Name des Repositorys, in dem das Artefakt gespeichert ist.
Führen Sie den folgenden Befehl aus:
Linux, macOS oder 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
Sie können auch nach Version und Paket sortieren, indem Sie eines oder beide der folgenden Flags hinzufügen:
--package=PACKAGE, um nur Dateien eines bestimmten Pakets anzuzeigen.--version=VERSIONum nur Dateien einer bestimmten Version anzuzeigen.
Generische Artefakte herunterladen
Führen Sie den folgenden Befehl aus, um generische Artefakte aus Ihrem Repository herunterzuladen:
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
DESTINATION: der Pfad zum Zielordner in Ihrem lokalen Dateisystem. Der Zielordner muss bereits vorhanden sein, andernfalls schlägt der Befehl fehl.LOCATION: der regionale oder multiregionale Speicherort für das Repository.REPOSITORY: der Name des Repositorys, in dem das Artefakt gespeichert ist.PACKAGE: das Paket der herunterzuladenden Datei.VERSION: die Version der herunterzuladenden Datei.NAME(optional): der Name der herunterzuladenden Datei. Ohne dieses Flag werden mit dem Befehl alle Dateien für das angegebene Paket und die angegebene Version heruntergeladen und die erforderlichen Verzeichnisse im Ziel erstellt.
Führen Sie den folgenden Befehl aus:
Linux, macOS oder 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
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT: Ihre Google Cloud Projekt-ID. Wenn Ihre Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.LOCATION: der regionale oder multiregionale Speicherort für das Repository.REPOSITORY: der Name des Repositorys in dem das Artefakt gespeichert ist.DESTINATION: der Pfad zum Zielordner in Ihrem lokalen Dateisystem. Der Zielordner muss bereits vorhanden sein, andernfalls schlägt der Befehl fehl.FILE: der URL-codierte Dateiname. Sie können diesen Wert finden, indem Sie den Befehlgcloud artifacts files listausführen und den Wert fürFILEkopieren. Er muss für diesen Befehl in das URL-codierte Format konvertiert werden.path/to/file.jarmuss beispielsweise alspath%2Fto%2Ffile.jareingegeben werden.
HTTP-Methode und URL:
GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Der Download sollte sofort beginnen.Generische Artefakte löschen
Führen Sie den Befehl gcloud artifacts
files delete aus, um generische Artefakte aus Ihrem Repository zu löschen. Dieser Befehl ist nur für Repositories im generischen Format verfügbar.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
FILE: der vollständige Dateiname. Sie finden diesen Wert, indem Sie dengcloud artifacts files listBefehl ausführen und den Wert fürFILEkopieren.LOCATION: der regionale oder multiregionale Speicherort für das Repository.REPOSITORY: der Name des Repositorys, in dem das Artefakt gespeichert ist.
Führen Sie den folgenden Befehl aus:
Linux, macOS oder 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