I contesti degli oggetti sono coppie chiave-valore personalizzate che puoi collegare agli oggetti Cloud Storage. Puoi utilizzare i contesti degli oggetti per classificare i dati, monitorare i workflow di elaborazione e contribuire ad arricchire gli oggetti con i metadati. Questi contesti persistono quando copi, componi o ripristini gli oggetti.
Questa pagina descrive come collegare e gestire i contesti sugli oggetti Cloud Storage.
Ottieni 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:
Creatore oggetti Storage (
roles/storage.objectCreator) -
Allegare, aggiornare, visualizzare ed eliminare i contesti dagli oggetti e visualizzare le rappresentazioni complete del contesto (inclusi i dati estesi):
Utente oggetto di archiviazione (
roles/storage.objectUser) -
Visualizza chiavi e valori di contesto:
Storage Object Viewer (
roles/storage.objectViewer) -
Elimina i contesti degli oggetti durante le operazioni di riscrittura, copia e composizione:
Storage Legacy Object Owner (
roles/storage.legacyObjectOwner)
Per saperne di più 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 i contesti degli oggetti:
-
storage.objects.create -
storage.objects.createContext
-
-
Collega, aggiorna ed elimina i contesti degli oggetti:
-
storage.objects.update -
storage.objects.createContext -
storage.objects.updateContext -
storage.objects.deleteContext
-
-
Elimina contesti degli oggetti:
storage.objects.dropContexts -
Visualizza i contesti degli oggetti:
-
storage.objects.get -
storage.objects.list
-
-
Visualizza il contesto completo di un oggetto, inclusi i dati estesi (Anteprima):
storage.objects.viewFullContext
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Requisiti di denominazione per le coppie chiave-valore
Sia le chiavi sia i valori per i contesti personalizzati devono soddisfare i seguenti requisiti:
Deve avere una lunghezza compresa tra 1 e 256 caratteri inclusi.
Deve iniziare con un carattere alfanumerico.
Deve essere un carattere UTF-8 valido. La maggior parte dei caratteri UTF-8 è supportata, ad eccezione dei seguenti caratteri:
Virgolette singole (
')Virgolette doppie (
")Barra rovesciata (
\)Barra (
/)
Le chiavi di contesto che iniziano con il prefisso
google:(ad esempiogoogle:annotation:face-detector-v1) sono riservate ai contesti generati da Google. Non puoi creare nuovi contesti con il prefissogoogle:o modificarne i valori. Se provi a farlo, Cloud Storage restituisce l'erroreINVALID_ARGUMENT. Per rimuovere i contesti con il prefissogoogle:, devi ignorarli utilizzando il parametrodropContextGroupsdurante un'operazione di riscrittura.
Allegare contesti a nuovi oggetti
Allega contesti agli oggetti quando carichi nuovi oggetti nei bucket Cloud Storage. Ogni contesto è costituito da una chiave e un valore.
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Segui i passaggi per allegare contesti all'oggetto.
Riga di comando
Per allegare contesti quando carichi oggetti con il comando
gcloud storage cp, utilizza il flag --custom-contexts:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
Dove:
OBJECT_LOCATIONè il percorso locale dell'oggetto. Ad esempio,Desktop/employees.txt.DESTINATION_BUCKET_NAMEè il nome del bucket in cui stai caricando l'oggetto. Ad esempio,my-bucket.KEYè la chiave di contesto da collegare 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 collegare 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 collegare i contesti quando carichi directory con il comando gcloud storage rsync, utilizza il flag --custom-contexts o il flag --custom-contexts-file:
gcloud 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 allegare 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 del 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.
Collega o modifica i contesti di un oggetto esistente
Puoi collegare nuovi contesti agli oggetti o aggiornare i contesti esistenti nei bucket Cloud Storage.
Solo i servizi Google, come i job di arricchimento degli oggetti, possono generare e allegare contesti con dati estesi, che utilizzano il prefisso della chiave google: riservato. Non puoi allegare dati estesi ai contesti definiti dall'utente e non puoi creare o modificare chiavi di contesto che iniziano con il prefisso google:. Se tenti di creare o modificare chiavi google:, Cloud Storage restituisce un errore INVALID_ARGUMENT.
Se un contesto esistente include dati estesi, Cloud Storage lo conserva nell'oggetto aggiornato durante le operazioni di aggiornamento e patch. L'impostazione di un valore di contesto su null elimina solo i contesti che non hanno dati estesi. Per visualizzare i dati estesi, consulta Visualizzare il contesto completo dell'oggetto. Per rimuovere un contesto con dati estesi, inclusi i contesti con il prefisso google:, devi ignorarlo utilizzando il parametro dropContextGroups durante un'operazione di riscrittura.
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket contenente l'oggetto.
Vai all'oggetto e poi fai clic su Apri il menu extra dell'oggetto.
Fai clic su Modifica contesti.
Nel riquadro Modifica contesti, esegui una delle seguenti operazioni:
Aggiungi un nuovo contesto dell'oggetto:
Fai clic su Aggiungi un contesto personalizzato.
Nei campi Chiave contesto oggetto e Valore contesto oggetto, inserisci una nuova coppia chiave-valore.
Fai clic su Fine.
(Facoltativo) Per aggiungere altri contesti di oggetti, fai clic su Aggiungi un contesto personalizzato, ripeti i passaggi precedenti e poi fai clic su Salva.
Modifica un contesto dell'oggetto:
Fai clic sul contesto dell'oggetto.
Aggiorna il campo Chiave del contesto dell'oggetto, il campo Valore del contesto dell'oggetto o entrambi.
Fai clic su Fine e poi su Salva.
Elimina un contesto dell'oggetto:
Fai clic su Elimina, quindi su Salva.
Riga di comando
Utilizza il comando gcloud storage objects update:
gcloud 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,employees.txt.CUSTOM_CONTEXTS_FLAGè uno dei seguenti flag:Per sostituire tutti i contesti esistenti, utilizza
--custom-contexts=KEY=VALUE,...o--custom-contexts-file=CUSTOM_CONTEXTS_FILEDove:
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 che vuoi collegare all'oggetto.
Per eliminare tutti i contesti esistenti, utilizza il flag
--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 allegare a un oggetto o eliminare da un oggetto. Ad esempio,Human resources.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
Patching gs://my-bucket/employees.txt#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 Configura l'autenticazione per le librerie client.
Rust
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
contextsper 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 collegare 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
cURLper chiamare l'API JSON con una richiesta oggettoPATCH:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/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 il quale vuoi modificare il contesto. Ad esempio,my-bucket.OBJECT_NAMEè il nome dell'oggetto codificato nell'URL. Ad esempio,employees.txt.
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.
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene l'oggetto con i contesti che vuoi visualizzare.
Vai all'oggetto e fai clic sul suo nome.
Nella pagina Dettagli oggetto, le coppie chiave/valore per tutti i contesti allegati sono elencate nella sezione Contesti oggetto.
Riga di comando
Utilizza il comando gcloud storage objects describe:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME
Dove:
BUCKET_NAMEè il nome del bucket contenente l'oggetto. Ad esempio,my-bucket.OBJECT_NAMEè il nome dell'oggetto. Ad esempio,employees.txt.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
bucket: my-bucket
contexts:
custom:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Human resources
google:annotation:face-detector-v1:
createTime: '2025-09-29T17:20:00.000000+00:00'
extendedDataTypeUrl: type.googleapis.com/google.protobuf.Struct
type: CUSTOM
updateTime: '2025-09-29T17:20:00.000000+00:00'
value: SUCCESS
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 Configura l'autenticazione per le librerie client.
Rust
API JSON
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
cURLper chiamare l'API JSON con una richiesta diGEToggetto:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Dove:
BUCKET_NAMEè il nome del bucket contenente l'oggetto. Ad esempio,my-bucket.OBJECT_NAMEè il nome codificato come URL dell'oggetto. Ad esempio,employees.txt.
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": "Human resources", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" }, "google:annotation:face-detector-v1": { "value": "SUCCESS", "createTime": "2025-09-29T17:20:00.000Z", "updateTime": "2025-09-29T17:20:00.000Z", "extendedDataTypeUrl": "type.googleapis.com/google.protobuf.Struct" } } } }
Visualizza contesto dell'oggetto completo
Per visualizzare un singolo contesto e i relativi dati estesi, utilizza il metodo viewFullContext (Anteprima).
API JSON
Per recuperare un singolo contesto completo (inclusi i dati estesi) per chiave:
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
cURLper chiamare l'API JSON con una richiestaGETVisualizza contesto completo:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/viewFullContext?contextKey=KEY"
Dove:
BUCKET_NAMEè il nome del bucket contenente l'oggetto. Ad esempio,my-bucket.OBJECT_NAMEè il nome dell'oggetto codificato come URL. Ad esempio,employees.txt.KEYè la chiave di contesto specifica da recuperare. Ad esempio,google:annotation:face-detector-v1.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
{ "kind": "storage#objectFullContext", "type": "CUSTOM", "key": "google:annotation:face-detector-v1", "value": "SUCCESS", "createTime": "2025-09-29T17:20:00.000Z", "updateTime": "2025-09-29T17:20:00.000Z", "extendedData": { "@type": "type.googleapis.com/google.protobuf.Struct", "value": { "modelName": "face-detector", "modelVersion": "v1", "faceAnnotationGroup": { "faceAnnotations": [ { "detectionConfidence": 0.9, "landmarkingConfidence": 0.8 } ] } } } }
Filtra gli oggetti per contesto
Filtra gli oggetti in base all'esistenza di chiavi di contesto degli oggetti o dei relativi valori specifici. Filtrare gli oggetti in base ai contesti aiuta a individuare e gestire in modo efficiente gruppi particolari di oggetti. Per maggiori dettagli, consulta Filtra gli oggetti in base ai contesti.
Gestisci i contesti degli oggetti durante le operazioni sugli oggetti
Per impostazione predefinita, Cloud Storage conserva i contesti degli oggetti quando li copi, li riscrivi, li componi, li sposti o li ripristini.
Copia oggetti
Per impostazione predefinita, Cloud Storage conserva i contesti degli oggetti dall'oggetto di origine durante un'operazione di copia, anche se esegui l'override di altri metadati. Per modificare i contesti degli oggetti durante un'operazione di copia, completa i seguenti passaggi:
Riga di comando
Il comando gcloud storage cp, il comando gcloud storage rsync e il comando gcloud storage mv conservano i contesti dell'oggetto di origine per impostazione predefinita. Per modificare i contesti durante queste operazioni, utilizza uno dei seguenti flag:
Il flag
--custom-contextsper impostare nuovi contesti per l'oggetto di destinazione.Il flag
--clear-custom-contextsper impedire che i contesti dell'oggetto di origine vengano collegati all'oggetto di destinazione.Una combinazione dei flag
--update-custom-contextse--remove-custom-contextsper modificare i singoli contesti dall'oggetto di origine prima di collegarli all'oggetto di destinazione.
Per impostare nuovi contesti quando copi un oggetto, utilizza il comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
Dove:
SOURCE_BUCKET_NAMEè il nome del bucket contenente l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome dell'oggetto da copiare. Ad esempio,employees.txt.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione. Ad esempio,employees-backup.txt.KEYè la chiave del 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.
Per rimuovere tutti i contesti dall'oggetto di origine quando copi un oggetto, utilizza il comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Dove:
SOURCE_BUCKET_NAMEè il nome del bucket contenente l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome dell'oggetto da copiare. Ad esempio,pets/dog.png.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione. Ad esempio,pets/cat.png.
Per modificare singoli contesti dall'oggetto di origine quando copi un oggetto, utilizza il comando gcloud storage cp con --update-custom-contexts e --remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
Dove:
SOURCE_BUCKET_NAMEè il nome del bucket contenente l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome dell'oggetto da copiare. Ad esempio,pets/dog.png.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione. Ad esempio,pets/cat.png.KEYè la chiave del contesto da allegare a un oggetto. Ad esempio,Department. Puoi specificare più coppie chiave-valore o chiavi separate da virgole.VALUEè il valore da associare alla chiave di contesto. Ad esempio,Human resources.
API JSON
Per ignorare i contesti durante la copia di un oggetto, includi la
proprietà contexts.custom nel corpo della richiesta:
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 i contesti da collegare all'oggetto di destinazione:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
Dove:
KEYè la chiave del contesto da allegare a un oggetto. Ad esempio,Department.VALUEè il valore da associare alla chiave di contesto. Ad esempio,Human resources.
Utilizza
cURLper chiamare l'API JSON con una richiesta oggettoPOST:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Dove:
JSON_FILE_NAMEè il percorso del file JSON che include le informazioni sui contesti degli oggetti.SOURCE_BUCKET_NAMEè il nome del bucket che contiene l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome codificato nell'URL dell'oggetto da copiare. Ad esempio,employees.txt.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome con codifica URL dell'oggetto di destinazione. Ad esempio,employees-backup.txt.
Per eliminare i contesti di origine durante un'operazione di copia, utilizza il
parametro di query dropContextGroups=custom nella richiesta:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Se il corpo della richiesta contiene contesti con il prefisso google:, puoi conservare le chiavi e i valori esistenti dell'oggetto di origine, ma Cloud Storage rifiuta le nuove chiavi google: o i valori modificati.
Per conservare i contesti, ometti la proprietà contexts dal corpo della richiesta ed escludi il parametro di query dropContextGroups.
Riscrivi gli oggetti
Per impostazione predefinita, Cloud Storage conserva i contesti degli oggetti dall'oggetto di origine durante un'operazione di riscrittura, anche se esegui l'override di altri metadati. Per modificare i contesti degli oggetti durante un'operazione di riscrittura, completa i seguenti passaggi:
Riga di comando
Il comando gcloud storage cp, il comando gcloud storage rsync e i comandi gcloud storage mv eseguono automaticamente le riscritture quando necessario, ad esempio quando si copiano oggetti tra località o classi di archiviazione diverse. gcloud storage cp e gcloud storage rsync creano un oggetto di origine e di destinazione, mentre gcloud storage mv crea l'oggetto di destinazione e rimuove l'oggetto di origine. Poiché queste operazioni creano un nuovo oggetto, puoi anche modificare o collegare i contesti nell'ambito dello stesso comando utilizzando uno dei seguenti flag:
Il flag
--custom-contextsper impostare nuovi contesti per l'oggetto di destinazione.Il flag
--clear-custom-contextsper impedire che i contesti dell'oggetto di origine vengano collegati all'oggetto di destinazione.Una combinazione dei flag
--update-custom-contextse--remove-custom-contextsper modificare i singoli contesti dall'oggetto di origine prima di collegarli all'oggetto di destinazione.
Per impostare nuovi contesti quando copi un oggetto, utilizza il comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
Dove:
SOURCE_BUCKET_NAMEè il nome del bucket contenente l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome dell'oggetto da copiare. Ad esempio,employees.txt.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione. Ad esempio,employees-backup.txt.KEYè la chiave del 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.
Per rimuovere tutti i contesti dall'oggetto di origine quando copi un oggetto, utilizza il comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Dove:
SOURCE_BUCKET_NAMEè il nome del bucket contenente l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome dell'oggetto da copiare. Ad esempio,pets/dog.png.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione. Ad esempio,pets/cat.png.
Per modificare singoli contesti dall'oggetto di origine quando copi un oggetto, utilizza il comando gcloud storage cp con --update-custom-contexts e --remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
Dove:
SOURCE_BUCKET_NAMEè il nome del bucket contenente l'oggetto da copiare. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome dell'oggetto da copiare. Ad esempio,pets/dog.png.DESTINATION_BUCKET_NAMEè il nome del bucket in cui copiare l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione. Ad esempio,pets/cat.png.KEYè la chiave del contesto da allegare a un oggetto. Ad esempio,Department. Puoi specificare più coppie chiave-valore o chiavi separate da virgole.VALUEè il valore da associare alla chiave di contesto. Ad esempio,Human resources.
API JSON
Per eseguire l'override dei contesti durante la riscrittura di un oggetto, includi la proprietà contexts.custom nel corpo della richiesta:
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 i contesti da collegare all'oggetto di destinazione:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
Dove:
KEYè la chiave di contesto da collegare a un oggetto. Ad esempio:Department.VALUEè il valore da associare alla chiave di contesto. Ad esempio,Human resources.
Utilizza
cURLper chiamare l'API JSON con una richiestaPOSTrewrite Object:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Dove:
JSON_FILE_NAMEè il percorso del file JSON che include le informazioni sui contesti degli oggetti.SOURCE_BUCKET_NAMEè il nome del bucket che contiene l'oggetto da riscrivere. Ad esempio,my-source-bucket.SOURCE_OBJECT_NAMEè il nome codificato nell'URL dell'oggetto da riscrivere. Ad esempio,employees.txt.DESTINATION_BUCKET_NAMEè il nome del bucket in cui riscrivere l'oggetto. Ad esempio,my-destination-bucket.DESTINATION_OBJECT_NAMEè il nome codificato come URL dell'oggetto di destinazione. Ad esempio,employees-backup.txt.
Per eliminare i contesti di origine durante un'operazione di riscrittura, utilizza il
parametro di query dropContextGroups=custom nella richiesta:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Se il corpo della richiesta contiene contesti con il prefisso google:, puoi conservare le chiavi e i valori esistenti dell'oggetto di origine, ma Cloud Storage rifiuta le nuove chiavi google: o i valori modificati.
Per conservare i contesti, ometti la proprietà contexts dal corpo della richiesta ed escludi il parametro di query dropContextGroups.
Comporre oggetti
Il comando gcloud storage objects compose e il metodo API JSON
compose uniscono i contesti dagli oggetti di origine e li collegano
agli oggetti di destinazione per impostazione predefinita. Cloud Storage risolve i conflitti dando la priorità ai contesti degli oggetti di origine elaborati successivamente. Per saperne di più
sul comportamento del contesto dell'oggetto durante un'operazione di composizione, consulta
Contesti degli oggetti compositi.
Riga di comando
Per specificare nuovi contesti per l'oggetto di destinazione durante la composizione degli oggetti, utilizza il flag --contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --contexts=KEY=VALUE,...
Dove:
BUCKET_NAMEè il nome del bucket che contiene gli oggetti di origine e in cui viene creato l'oggetto di destinazione. Ad esempio,my-bucket.SOURCE_OBJECT_1eSOURCE_OBJECT_2sono gli oggetti di origine da comporre.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione da creare. Ad esempio,my-composite-object.KEYè la chiave di contesto da collegare 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.
Per impedire che i contesti di origine vengano collegati agli oggetti compositi, utilizza il flag --clear-custom-contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Dove:
BUCKET_NAMEè il nome del bucket che contiene gli oggetti di origine e in cui viene creato l'oggetto di destinazione. Ad esempio,my-bucket.SOURCE_OBJECT_1eSOURCE_OBJECT_2sono gli oggetti di origine da comporre.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione da creare. Ad esempio,my-composite-object.
API JSON
Per specificare nuovi contesti per l'oggetto di destinazione durante la composizione degli oggetti, includi i contesti nella proprietà destination del corpo della richiesta.
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un file JSON contenente il corpo della richiesta:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain", "contexts": { "custom": { "KEY": { "value": "VALUE" } } } } }
Dove:
SOURCE_OBJECT_1eSOURCE_OBJECT_2sono gli oggetti di origine da comporre.KEYè la chiave di contesto da collegare a un oggetto. Ad esempio,Department.VALUEè il valore da associare alla chiave di contesto. Ad esempio,Human resources.
Utilizza
cURLper chiamare l'API JSON con una richiestaPOSTcompose Object:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose"
Dove:
JSON_FILE_NAMEè il percorso del file JSON che include il corpo della richiesta.BUCKET_NAMEè il nome del bucket che contiene gli oggetti di origine e in cui viene creato l'oggetto di destinazione. Ad esempio,my-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione da creare. Ad esempio,my-composite-object.
Per impedire l'allegamento dei contesti di origine agli oggetti compositi, utilizza il
parametro di query dropContextGroups=custom nella richiesta:
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un file JSON contenente il corpo della richiesta:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain" } }
Dove:
SOURCE_OBJECT_1eSOURCE_OBJECT_2sono oggetti di origine da comporre.
Utilizza
cURLper chiamare l'API JSON con una richiestaPOSTcompose Object:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose?dropContextGroups=custom"
Dove:
JSON_FILE_NAMEè il percorso del file JSON che include il corpo della richiesta.BUCKET_NAMEè il nome del bucket che contiene gli oggetti di origine e in cui viene creato l'oggetto di destinazione. Ad esempio,my-bucket.DESTINATION_OBJECT_NAMEè il nome dell'oggetto di destinazione da creare. Ad esempio,my-composite-object.
Gestire i contesti degli oggetti in blocco
Per gestire i contesti degli oggetti per milioni o miliardi di oggetti con un singolo job, utilizza le operazioni batch di archiviazione. Per creare un job, specifica gli oggetti di destinazione fornendo un file manifest o utilizzando i prefissi degli oggetti. Dopo aver specificato gli oggetti, crea un job di operazioni batch per aggiornare i contesti degli oggetti.
Analizza i contesti degli oggetti in BigQuery
Se hai un abbonamento Storage Intelligence attivo, puoi
eseguire query e analizzare i contesti degli oggetti in BigQuery. Utilizza la vista Object Contexts Catalog (object_contexts_catalog_view) per eseguire query su chiavi, valori e payload extendedData strutturati di contesto (come etichette di immagini, volti rilevati e riquadri di delimitazione). La visualizzazione del catalogo viene aggiornata ogni 24 ore.
Ad esempio, per trovare tutti gli oggetti in cui un punteggio di annotazione specifico supera una soglia:
SELECT t.project, t.bucket, t.name, t.generation, label FROM `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t, UNNEST(t.contexts) AS context, UNNEST(JSON_QUERY_ARRAY(context.extendedData.labelAnnotationGroup.labelAnnotations)) AS label WHERE context.key = "google:annotation:label-detector-v1" AND FLOAT64(label.score) > 0.75;
Sostituisci:
PROJECT_ID: l'ID del progetto che contiene il set di dati di Storage Insights.INSIGHTS_DATASET: il nome del set di dati di Storage Insights.
Per ulteriori informazioni sullo schema della visualizzazione del catalogo, consulta Schema del catalogo dei contesti degli oggetti. Per altri esempi di query, consulta Analizzare i contesti degli oggetti.
Passaggi successivi
- Scopri di più sulle proprietà del contesto degli oggetti nella documentazione dell'API Storage di Cloud Storage.