Questa pagina descrive come archiviare artefatti immutabili con controllo delle versioni che non aderiscono a un formato del pacchetto specifico nei repository di formato generico di Artifact Registry.
Per acquisire familiarità con lo stoccaggio di artefatti generici in Artifact Registry, puoi provare la guida rapida.
Gli elementi generici sono file di qualsiasi formato, inclusi, a titolo esemplificativo:
- File compressi, come file tar e file zip
- File di configurazione, ad esempio file YAML e TOML
- File di testo e PDF
- Programmi binari
- Archivi
- File multimediali
A differenza di altri formati, gli elementi archiviati nei repository di formati generici non sono destinati all'utilizzo da parte di Docker, gestori pacchetti o altri client di terze parti.
Prima di iniziare
- Crea un repository di formati generici.
- Verifica di disporre delle autorizzazioni necessarie per il repository.
- (Facoltativo) Configura i valori predefiniti per i comandi Google Cloud CLI.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire gli elementi generici, chiedi all'amministratore di concederti i seguenti ruoli IAM nel repository:
-
Visualizza gli elementi:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Scarica gli elementi:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Carica gli elementi in un repository:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Elimina gli elementi:
Amministratore del repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Caricare artefatti generici
Puoi caricare gli elementi generici singolarmente per file o in più per directory. Al momento del caricamento, è necessario specificare un nome del pacchetto e un numero di versione. Puoi anche specificare il percorso nella struttura del file di destinazione su cui caricarli. Se non viene specificato alcun percorso di destinazione, gli elementi vengono caricati per impostazione predefinita a livello di radice.
Per caricare elementi generici nel tuo repository, esegui il seguente comando:
gcloud
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
PROJECT
: il tuo Google Cloud
ID progetto.
Se l'ID progetto contiene due punti (:
), consulta
Progetti basati sul dominioLOCATION
: la località regionale o multiregionale del repository.REPOSITORY
: il nome del repository in cui è memorizzato l'elemento.SOURCE
: la posizione e il nome del file che stai caricando.PACKAGE
: il nome del pacchetto del file che stai caricando.VERSION
: la versione del file che stai caricando.Esegui il seguente comando:
Linux, macOS o 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
per caricarlo in una cartella specifica all'interno del pacchetto e della versione. Verranno create anche le eventuali cartelle non esistenti.--source-directory=SOURCE_DIR
per sostituire il flag--source
e caricare una directory anziché un singolo file.--skip-existing
quando utilizzi il flag--source-directory
per saltare i file già esistenti. In caso contrario, il comando avrà esito negativo quando tenterai di caricare un file che esiste già.
API
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT è il tuo Google Cloud
ID progetto. Se l'ID progetto contiene due punti (
:
), consulta Progetti basati sul dominio - LOCATION è la posizione regionale o multiregionale del repository.
- REPOSITORY è il nome del repository in cui è archiviato l'elemento.
- SOURCE è la posizione e il nome del file che stai caricando.
- PACKAGE è il nome del pacchetto del file che stai caricando.
- VERSION è la versione del file che stai caricando.
- NAME è il nuovo nome del file nel repository.
Metodo HTTP e URL:
POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
curl (Linux, macOS o Cloud Shell)
Per inviare la richiesta, esegui il seguente comando:
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
Elenco degli elementi
console
Puoi visualizzare gli elementi per i repository di formati generici nella console Google Cloud.
Apri la pagina Repositories (Repositoi) nella console Google Cloud.
Nell'elenco dei repository, seleziona il repository.
Fai clic sul nome del pacchetto.
Per visualizzare i file scaricabili per tutte le versioni del pacchetto, fai clic sulla scheda File.
Per visualizzare i file scaricabili per una versione specifica del pacchetto, fai clic sul nome della versione e poi sulla scheda File.
gcloud
Puoi elencare gli elementi in un repository con il comando gcloud artifacts files list
.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
PROJECT
: il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:
), consulta Progetti basati sul dominioLOCATION
: la località regionale o multiregionale del repository.REPOSITORY
: il nome del repository in cui è memorizzato l'elemento.
Esegui il seguente comando:
Linux, macOS o 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
È anche possibile ordinare per versione e pacchetto aggiungendo uno o entrambi i seguenti flag:
--package=PACKAGE
per visualizzare solo i file di un pacchetto specifico.--version=VERSION
per visualizzare solo i file di una versione specifica.
Scaricare artefatti generici
Per scaricare elementi generici dal tuo repository, esegui il seguente comando:
gcloud
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
DESTINATION
: il percorso della cartella di destinazione nel file system locale. La cartella di destinazione deve già esistere, altrimenti il comando non andrà a buon fine.LOCATION
: la località regionale o multiregionale del repository.REPOSITORY
: il nome del repository in cui è memorizzato l'elemento.PACKAGE
: il pacchetto del file da scaricare.VERSION
: la versione del file da scaricare.NAME
(facoltativo): il nome del file da scaricare. Senza questo flag, il comando scaricherà tutti i file per il pacchetto e la versione specificati, nonché creerà le directory necessarie nella destinazione.
Esegui il seguente comando:
Linux, macOS o 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
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT
: il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:
), consulta Progetti basati sul dominio.LOCATION
: la località regionale o multiregionale del repository.REPOSITORY
: il nome del repository in cui è archiviato l'elemento.DESTINATION
: il percorso della cartella di destinazione nel file system locale. La cartella di destinazione deve già esistere, altrimenti il comando non andrà a buon fine.FILE
: il nome file codificato come URL. Puoi trovare questo valore eseguendo il comandogcloud artifacts files list
e copiando il valore diFILE
. Per questo comando deve essere convertito in formato con codifica URL. Ad esempio,path/to/file.jar
deve essere inserito comepath%2Fto%2Ffile.jar
.
Metodo HTTP e URL:
GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media
Per inviare la richiesta, espandi una di queste opzioni:
Il download dovrebbe iniziare immediatamente.Eliminare gli elementi generici
Per eliminare gli elementi generici dal repository, esegui il comando gcloud artifacts
files delete
. Questo comando è disponibile solo per i repository di formati generici.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
FILE
: il nome file completo. Puoi trovare questo valore eseguendo il comandogcloud artifacts files list
e copiando il valore perFILE
.LOCATION
: la località regionale o multiregionale del repository.REPOSITORY
: il nome del repository in cui è memorizzato l'elemento.
Esegui il seguente comando:
Linux, macOS o 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