Questa pagina descrive come allegare e gestire i contesti sugli oggetti Cloud Storage sotto forma di coppie chiave-valore.
Ottenere i ruoli richiesti
Per ottenere le autorizzazioni necessarie per creare e gestire i contesti degli oggetti, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'oggetto:
-
Crea oggetti con contesti:
Storage Object Creator (
roles/storage.objectCreator
) -
Allegare, aggiornare, visualizzare ed eliminare i contesti dagli oggetti:
Storage Object User (
roles/storage.objectUser
) -
Visualizza chiavi e valori di contesto allegati agli oggetti:
Storage Object Viewer (
roles/storage.objectViewer
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare e gestire i contesti degli oggetti. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare e gestire i contesti degli oggetti sono necessarie le seguenti autorizzazioni:
-
Crea un oggetto con contesti dell'oggetto:
-
storage.objects.create
-
storage.objects.createContext
-
-
Allegare, aggiornare ed eliminare i contesti degli oggetti:
-
storage.objects.update
-
storage.objects.createContext
-
storage.objects.updateContext
-
storage.objects.deleteContext
-
-
Visualizza i contesti degli oggetti:
-
storage.objects.get
-
storage.objects.list
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Allegare contesti a nuovi oggetti
Collega i contesti agli oggetti quando carichi nuovi oggetti nei bucket Cloud Storage. Ogni contesto è composto da una chiave e un valore.
Riga di comando
Per collegare i contesti quando carichi oggetti con il
comando gcloud alpha storage cp
, utilizza il flag --custom-contexts
:
gcloud alpha storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
Dove:
OBJECT_LOCATION
è il percorso locale dell'oggetto. Ad esempio,Desktop/dog.png
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui stai caricando l'oggetto. Ad esempio,my-bucket
.KEY
è la chiave di contesto da allegare a un oggetto. Ad esempio,Department
. Puoi specificare più coppie chiave-valore separate da virgole.VALUE
è il valore da associare alla chiave di contesto. Ad esempio,Human resources
.
In alternativa, crea un file JSON contenente i contesti che vuoi allegare agli oggetti e utilizza il flag --custom-contexts-file
:
{ "KEY": { "value": "VALUE" }, ... }
Dove:
KEY
è la chiave di contesto da allegare a un oggetto. Ad esempio,Department
. Puoi specificare più coppie chiave-valore.VALUE
è il valore da associare alla chiave di contesto. Ad esempio,Human resources
.
Per allegare contesti quando carichi directory con il
comando gcloud alpha storage rsync
, utilizza il
flag --custom-contexts
o il flag --custom-contexts-file
:
gcloud alpha storage rsync DIRECTORY_LOCATION gs://DESTINATION_BUCKET_NAME --recursive --custom-contexts=KEY=VALUE,...
Dove:
DIRECTORY_LOCATION
è il percorso locale della tua directory. Ad esempio,~/my_directory
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui stai caricando la directory. Ad esempio,my-bucket
.KEY
è la chiave di contesto da collegare agli oggetti. Ad esempio,Department
. Puoi specificare più coppie chiave-valore separate da virgole.VALUE
è il valore da associare alla chiave di contesto. Ad esempio,Human resources
.
API JSON
Per collegare i contesti agli oggetti quando carichi nuovi oggetti, utilizza uno dei seguenti metodi:
Come parte dei metadati dell'oggetto in formato JSON, includi il campo contexts
:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Dove:
KEY
è la chiave di contesto da allegare a un oggetto. Ad esempio,Department
. Puoi specificare più coppie chiave-valore nell'oggettocustom
.VALUE
è il valore da associare alla chiave di contesto. Ad esempio,Human resources
.
Allegare o modificare i contesti di un oggetto esistente
Puoi collegare nuovi contesti agli oggetti esistenti nei bucket Cloud Storage.
Riga di comando
Utilizza il comando gcloud alpha storage objects update
:
gcloud alpha storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG
Dove:
BUCKET_NAME
è il nome del bucket che contiene l'oggetto per cui vuoi modificare il contesto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto. Ad esempio,pets/dog.png
.CUSTOM_CONTEXTS_FLAG
è uno dei seguenti flag:Per sostituire tutti i contesti esistenti, utilizza
--custom-contexts=KEY=VALUE,...
o--custom-contexts-file=CUSTOM_CONTEXTS_FILE
Dove:
KEY
è la chiave di contesto da allegare a un oggetto. Ad esempio,Department
. Puoi specificare più coppie chiave-valore separate da virgole.VALUE
è il valore da associare alla chiave di contesto. Ad esempio,Human resources
.CUSTOM_CONTEXTS_FILE
è il percorso del file JSON o YAML che contiene i contesti da allegare all'oggetto.
Per eliminare tutti i contesti esistenti, utilizza
--clear-custom-contexts
.Per aggiungere, modificare o eliminare singoli contesti, utilizza una combinazione di
--update-custom-contexts=KEY=VALUE,...
e--remove-custom-contexts=KEY,...
Dove:
KEY
è la chiave di contesto che vuoi allegare a un oggetto o eliminare da un oggetto. Ad esempio,Department
.VALUE
è il valore da associare alla chiave di contesto che vuoi collegare a un oggetto. Ad esempio,Human resources
.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
Patching gs://my-bucket/pets/dog.png#1560574162144861... Completed 1
Librerie client
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON contenente le impostazioni dell'oggetto, che deve includere i campi di configurazione
contexts
per l'oggetto.Per aggiungere, modificare o sovrascrivere i contesti esistenti, utilizza il seguente formato:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Dove:
KEY
è la chiave di contesto da allegare a un oggetto. Ad esempio,Department
. Puoi specificare più coppie chiave-valore nell'oggettocustom
.VALUE
è il valore da associare alla chiave di contesto. Ad esempio,Human resources
.
Per eliminare tutti i contesti esistenti, utilizza il seguente formato:
{ "contexts": { "custom": null } }
Per eliminare una chiave specifica dal contesto, utilizza il seguente formato:
{ "contexts": { "custom": { "KEY": null, ... } } }
Dove:
KEY
è la chiave di contesto che vuoi eliminare da un oggetto. Ad esempio,Department
. Puoi specificare più chiavi da eliminare dall'oggettocustom
.Utilizza
cURL
per chiamare l'API JSON con una richiesta diPATCH
oggetto:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Dove:
JSON_FILE_NAME
è il percorso del file che include le informazioni sui contesti degli oggetti.BUCKET_NAME
è il nome del bucket che contiene l'oggetto per cui vuoi modificare il contesto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome codificato nell'URL dell'oggetto. Ad esempio,pets/dog.png
viene codificato nell'URL comepets%2Fdog.png
.
In alternativa, puoi sostituire il contesto di un oggetto con una richiesta PUT
Object. La richiesta dell'oggetto PUT
sostituisce anche altri
metadati dell'oggetto. Pertanto, non consigliamo di utilizzare la richiesta di oggetti PUT
.
Visualizzare i contesti degli oggetti
Puoi visualizzare i contesti di un oggetto elencando i metadati dell'oggetto o descrivendo un oggetto specifico.
Riga di comando
Utilizza il comando gcloud alpha storage objects describe
:
gcloud alpha storage objects describe gs://BUCKET_NAME/OBJECT_NAME
Dove:
BUCKET_NAME
è il nome del bucket contenente l'oggetto di cui vuoi visualizzare il contesto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome dell'oggetto di cui vuoi visualizzare il contesto. Ad esempio,pets/dog.png
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
bucket: my-bucket contexts: Department: createTime: '2023-01-01T00:00:00.000000+00:00' type: CUSTOM updateTime: '2023-01-01T00:00:00.000000+00:00' value: HR DataClassification: createTime: '2023-01-01T00:00:00.000000+00:00' type: CUSTOM updateTime: '2023-01-01T00:00:00.000000+00:00' value: Confidential name: employees.txt
Librerie client
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiesta diGET
oggetto:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Dove:
BUCKET_NAME
è il nome del bucket che contiene l'oggetto di cui vuoi visualizzare il contesto. Ad esempio,my-bucket
.OBJECT_NAME
è il nome codificato tramite URL dell'oggetto di cui vuoi visualizzare il contesto. Ad esempio,pets/dog.png
, codificato come URLpets%2Fdog.png
.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
{ "kind": "storage#object", "name": "employees.txt", "bucket": "my-bucket", "contexts": { "custom": { "Department": { "value": "HR", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" }, "DataClassification": { "value": "Confidential", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" } } } }
Filtrare gli oggetti per contesti
Filtra gli oggetti in base all'esistenza di chiavi di contesto dell'oggetto o ai relativi valori specifici. Il filtraggio degli oggetti per contesti consente di individuare e gestire in modo efficiente gruppi particolari di oggetti. Per maggiori dettagli, vedi Filtrare gli oggetti per contesti.
Gestisci i contesti degli oggetti durante le operazioni sugli oggetti
I contesti degli oggetti vengono conservati per impostazione predefinita quando copi, riscrivi, componi, sposti o ripristini gli oggetti. Puoi anche modificare i contesti durante le operazioni di copia, riscrittura e composizione.
Riga di comando
I comandi gcloud alpha storage cp
, gcloud alpha storage rsync
e gcloud alpha storage mv
conservano i contesti dell'oggetto di origine per impostazione predefinita. Per modificare i contesti durante queste operazioni, utilizza uno dei seguenti flag:
- I flag
--custom-contexts
o--custom-contexts-file
per impostare nuovi contesti per l'oggetto di destinazione. - Il flag
--clear-custom-contexts
per impedire che i contesti dell'oggetto origine vengano allegati all'oggetto di destinazione. - Una combinazione dei flag
--update-custom-contexts
e--remove-custom-contexts
per modificare i singoli contesti dell'oggetto origine prima di collegarli all'oggetto di destinazione.
Il comando gcloud alpha storage objects compose
unisce i contesti
degli oggetti di origine e li collega agli oggetti di destinazione per
impostazione predefinita. Cloud Storage risolve i conflitti dando la priorità ai contesti
degli oggetti di origine elaborati in un secondo momento. Per ulteriori informazioni sul comportamento del contesto dell'oggetto durante un'operazione di composizione, consulta Contesti degli oggetti compositi. Puoi anche specificare nuovi contesti per l'oggetto di destinazione utilizzando i flag --custom-contexts
o --custom-contexts-file
.
API JSON
Per modificare i contesti durante un'operazione di copia o riscrittura di un oggetto, includi la proprietà
contexts.custom
nel corpo della richiesta. Se non includi questa proprietà, i contesti dell'oggetto di origine vengono conservati per impostazione predefinita.Quando componi gli oggetti, i contesti degli oggetti di origine vengono uniti nell'oggetto di destinazione per impostazione predefinita. Cloud Storage risolve i conflitti dando la priorità ai contesti degli oggetti di origine elaborati in un secondo momento. Per saperne di più sul comportamento del contesto dell'oggetto durante un'operazione di composizione, consulta Contesti degli oggetti compositi. Puoi anche specificare nuovi contesti per l'oggetto di destinazione nella proprietà
destination.contexts.custom
.
Passaggi successivi
- Scopri di più sulle proprietà del contesto dell'oggetto nella documentazione dell'API Cloud Storage.