Cette page explique comment associer et gérer des contextes sur des objets Cloud Storage sous forme de paires clé/valeur.
Obtenir les rôles requis
Pour obtenir les autorisations nécessaires pour créer et gérer des contextes d'objet, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'objet :
-
Créer des objets avec des contextes :
Créateur d'objets de l'espace de stockage (
roles/storage.objectCreator) -
Associer, modifier, afficher et supprimer des contextes d'objets :
Utilisateur d'objets Storage (
roles/storage.objectUser) -
Afficher les clés et valeurs de contexte associées aux objets :
Lecteur des objets Storage (
roles/storage.objectViewer)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer et gérer des contextes d'objet. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour créer et gérer des contextes d'objet :
-
Créez un objet avec des contextes d'objet :
-
storage.objects.create -
storage.objects.createContext
-
-
Associer, modifier et supprimer des contextes d'objet :
-
storage.objects.update -
storage.objects.createContext -
storage.objects.updateContext -
storage.objects.deleteContext
-
-
Afficher les contextes d'objet :
-
storage.objects.get -
storage.objects.list
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Associer des contextes à de nouveaux objets
Associez des contextes aux objets lorsque vous importez de nouveaux objets dans des buckets Cloud Storage. Chaque contexte se compose d'une clé et d'une valeur.
Ligne de commande
Pour associer des contextes lorsque vous importez des objets avec la commande gcloud alpha storage cp, utilisez l'option --custom-contexts :
gcloud alpha storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
Où :
OBJECT_LOCATIONcorrespond au chemin d'accès local à votre objet. Exemple :Desktop/dog.pngDESTINATION_BUCKET_NAMEcorrespond au nom du bucket dans lequel vous importez votre objet. Exemple :my-bucket.KEYest la clé de contexte à associer à un objet. Exemple :DepartmentVous pouvez spécifier plusieurs paires clé/valeur séparées par des virgules.VALUEcorrespond à la valeur à associer à la clé de contexte. Exemple :Human resources
Vous pouvez également créer un fichier JSON contenant les contextes que vous souhaitez associer aux objets, puis utiliser l'indicateur --custom-contexts-file :
{ "KEY": { "value": "VALUE" }, ... }
Où :
KEYest la clé de contexte à associer à un objet. Exemple :DepartmentVous pouvez spécifier plusieurs paires clé/valeur.VALUEcorrespond à la valeur à associer à la clé de contexte. Exemple :Human resources
Pour associer des contextes lorsque vous importez des répertoires avec la commande gcloud alpha storage rsync, utilisez l'indicateur --custom-contexts ou --custom-contexts-file :
gcloud alpha storage rsync DIRECTORY_LOCATION gs://DESTINATION_BUCKET_NAME --recursive --custom-contexts=KEY=VALUE,...
Où :
DIRECTORY_LOCATIONcorrespond au chemin d'accès local à votre répertoire. Exemple :~/my_directoryDESTINATION_BUCKET_NAMEcorrespond au nom du bucket dans lequel vous importez votre répertoire. Exemple :my-bucket.KEYest la clé de contexte à associer aux objets. Exemple :DepartmentVous pouvez spécifier plusieurs paires clé/valeur séparées par des virgules.VALUEcorrespond à la valeur à associer à la clé de contexte. Exemple :Human resources
API JSON
Pour associer des contextes à des objets lorsque vous importez de nouveaux objets, utilisez l'une des méthodes suivantes :
Dans les métadonnées de l'objet au format JSON, incluez le champ contexts :
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Où :
KEYest la clé de contexte à associer à un objet. Exemple :DepartmentVous pouvez spécifier plusieurs paires clé/valeur dans l'objetcustom.VALUEcorrespond à la valeur à associer à la clé de contexte. Exemple :Human resources
Associer ou modifier des contextes pour un objet existant
Vous pouvez associer de nouveaux contextes à vos objets existants dans les buckets Cloud Storage.
Ligne de commande
Exécutez la commande gcloud alpha storage objects update :
gcloud alpha storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant l'objet dont vous souhaitez modifier le contexte. Exemple :my-bucket.OBJECT_NAMEcorrespond au nom de l'objet. Exemple :pets/dog.png.CUSTOM_CONTEXTS_FLAGest l'un des indicateurs suivants :Pour remplacer tous les contextes existants, utilisez
--custom-contexts=KEY=VALUE,...ou--custom-contexts-file=CUSTOM_CONTEXTS_FILE.Où :
KEYest la clé de contexte à associer à un objet. Exemple :DepartmentVous pouvez spécifier plusieurs paires clé/valeur séparées par des virgules.VALUEest la valeur à associer à la clé de contexte. Exemple :Human resourcesCUSTOM_CONTEXTS_FILEest le chemin d'accès au fichier JSON ou YAML contenant les contextes que vous souhaitez associer à l'objet.
Pour supprimer tous les contextes existants, utilisez
--clear-custom-contexts.Pour ajouter, modifier ou supprimer des contextes individuels, utilisez une combinaison de
--update-custom-contexts=KEY=VALUE,...et--remove-custom-contexts=KEY,....Où :
KEYcorrespond à la clé de contexte que vous souhaitez associer à un objet ou en supprimer. Exemple :DepartmentVALUEcorrespond à la valeur à associer à la clé de contexte que vous souhaitez associer à un objet. Exemple :Human resources.
Si l'opération réussit, la réponse se présente comme suit :
Patching gs://my-bucket/pets/dog.png#1560574162144861... Completed 1
Bibliothèques clientes
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
API JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les paramètres de l'objet, qui doit inclure les champs de configuration
contextspour l'objet.Pour ajouter, modifier ou remplacer des contextes existants, utilisez le format suivant :
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Où :
KEYest la clé de contexte à associer à un objet. Exemple :DepartmentVous pouvez spécifier plusieurs paires clé/valeur dans l'objetcustom.VALUEest la valeur à associer à la clé de contexte. Exemple :Human resources.
Pour supprimer tous les contextes existants, utilisez le format suivant :
{ "contexts": { "custom": null } }
Pour supprimer une clé spécifique du contexte, utilisez le format suivant :
{ "contexts": { "custom": { "KEY": null, ... } } }
Où :
KEYest la clé de contexte que vous souhaitez supprimer d'un objet. Exemple :DepartmentVous pouvez spécifier plusieurs clés à supprimer de l'objetcustom.Utilisez
cURLpour appeler l'API JSON avec une requêtePATCHObject :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"
Où :
JSON_FILE_NAMEest le chemin d'accès au fichier contenant les informations sur les contextes d'objet.BUCKET_NAMEcorrespond au nom du bucket contenant l'objet dont vous souhaitez modifier le contexte. Exemple :my-bucket.OBJECT_NAMEcorrespond au nom encodé au format URL de l'objet. Par exemple,pets/dog.pngest encodé au format URL sous la formepets%2Fdog.png.
Vous pouvez également remplacer le contexte d'un objet par une requête PUT Object. La requête d'objet PUT remplace également les autres métadonnées d'objet. Par conséquent, nous vous déconseillons d'utiliser la requête d'objet PUT.
Afficher les contextes d'objet
Vous pouvez afficher les contextes d'un objet en listant les métadonnées de l'objet ou en décrivant un objet spécifique.
Ligne de commande
Exécutez la commande gcloud alpha storage objects describe :
gcloud alpha storage objects describe gs://BUCKET_NAME/OBJECT_NAME
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant l'objet dont vous souhaitez afficher le contexte. Exemple :my-bucketOBJECT_NAMEcorrespond au nom de l'objet dont vous souhaitez afficher le contexte. Par exemple,pets/dog.png.
Si l'opération réussit, la réponse se présente comme suit :
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
Bibliothèques clientes
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
API JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API JSON avec une requêteGETObject :curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant l'objet dont vous souhaitez afficher le contexte. Exemple :my-bucket.OBJECT_NAMEcorrespond au nom encodé en URL de l'objet dont vous souhaitez afficher le contexte. Par exemple,pets/dog.png, encodé au format URL :pets%2Fdog.png.
Si l'opération réussit, la réponse se présente comme suit :
{ "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" } } } }
Filtrer les objets par contexte
Filtrez les objets en fonction de l'existence de clés de contexte d'objet ou de leurs valeurs spécifiques. Filtrer les objets par contexte permet de localiser et de gérer efficacement des groupes d'objets spécifiques. Pour en savoir plus, consultez Filtrer les objets par contexte.
Gérer les contextes d'objet lors des opérations sur les objets
Les contextes d'objet sont conservés par défaut lorsque vous copiez, réécrivez, composez, déplacez ou restaurez des objets. Vous pouvez également modifier les contextes lors des opérations de copie, de réécriture et de composition.
Ligne de commande
Les commandes gcloud alpha storage cp, gcloud alpha storage rsync et gcloud alpha storage mv conservent les contextes de l'objet source par défaut. Pour modifier les contextes lors de ces opérations, utilisez l'un des indicateurs suivants :
- Indicateurs
--custom-contextsou--custom-contexts-filepermettant de définir de nouveaux contextes pour l'objet de destination. - L'indicateur
--clear-custom-contextspour empêcher l'association des contextes de l'objet source à l'objet de destination. - Combinaison des indicateurs
--update-custom-contextset--remove-custom-contextspermettant de modifier des contextes individuels de l'objet source avant de les associer à l'objet de destination.
La commande gcloud alpha storage objects compose fusionne les contextes des objets sources et les associe aux objets de destination par défaut. Cloud Storage résout les conflits en donnant la priorité aux contextes des objets sources traités ultérieurement. Pour en savoir plus sur le comportement du contexte d'objet lors d'une opération de composition, consultez Contextes d'objets composites. Vous pouvez également spécifier de nouveaux contextes pour l'objet de destination à l'aide des indicateurs --custom-contexts ou --custom-contexts-file.
API JSON
Pour modifier les contextes lors d'une opération d'objet copy ou rewrite, incluez la propriété
contexts.customdans le corps de la requête. Si vous n'incluez pas cette propriété, les contextes de l'objet source sont conservés par défaut.Lorsque vous composez des objets, les contextes des objets sources sont fusionnés dans l'objet de destination par défaut. Cloud Storage résout les conflits en donnant la priorité aux contextes des objets sources traités ultérieurement. Pour en savoir plus sur le comportement du contexte d'objet lors d'une opération de composition, consultez Contextes d'objets composites. Vous pouvez également spécifier de nouveaux contextes pour l'objet de destination dans la propriété
destination.contexts.custom.
Étapes suivantes
- Découvrez les propriétés du contexte d'objet dans la documentation de l'API Cloud Storage.