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_LOCATION
correspond au chemin d'accès local à votre objet. Exemple :Desktop/dog.png
DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous importez votre objet. Exemple :my-bucket
.KEY
est la clé de contexte à associer à un objet. Exemple :Department
Vous pouvez spécifier plusieurs paires clé/valeur séparées par des virgules.VALUE
correspond à 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ù :
KEY
est la clé de contexte à associer à un objet. Exemple :Department
Vous pouvez spécifier plusieurs paires clé/valeur.VALUE
correspond à 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_LOCATION
correspond au chemin d'accès local à votre répertoire. Exemple :~/my_directory
DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous importez votre répertoire. Exemple :my-bucket
.KEY
est la clé de contexte à associer aux objets. Exemple :Department
Vous pouvez spécifier plusieurs paires clé/valeur séparées par des virgules.VALUE
correspond à 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ù :
KEY
est la clé de contexte à associer à un objet. Exemple :Department
Vous pouvez spécifier plusieurs paires clé/valeur dans l'objetcustom
.VALUE
correspond à 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_NAME
correspond au nom du bucket contenant l'objet dont vous souhaitez modifier le contexte. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de l'objet. Exemple :pets/dog.png
.CUSTOM_CONTEXTS_FLAG
est l'un des indicateurs suivants :Pour remplacer tous les contextes existants, utilisez
--custom-contexts=KEY=VALUE,...
ou--custom-contexts-file=CUSTOM_CONTEXTS_FILE
.Où :
KEY
est la clé de contexte à associer à un objet. Exemple :Department
Vous pouvez spécifier plusieurs paires clé/valeur séparées par des virgules.VALUE
est la valeur à associer à la clé de contexte. Exemple :Human resources
CUSTOM_CONTEXTS_FILE
est 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ù :
KEY
correspond à la clé de contexte que vous souhaitez associer à un objet ou en supprimer. Exemple :Department
VALUE
correspond à 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
contexts
pour l'objet.Pour ajouter, modifier ou remplacer des contextes existants, utilisez le format suivant :
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Où :
KEY
est la clé de contexte à associer à un objet. Exemple :Department
Vous pouvez spécifier plusieurs paires clé/valeur dans l'objetcustom
.VALUE
est 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ù :
KEY
est la clé de contexte que vous souhaitez supprimer d'un objet. Exemple :Department
Vous pouvez spécifier plusieurs clés à supprimer de l'objetcustom
.Utilisez
cURL
pour appeler l'API JSON avec une requêtePATCH
Object :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_NAME
est le chemin d'accès au fichier contenant les informations sur les contextes d'objet.BUCKET_NAME
correspond au nom du bucket contenant l'objet dont vous souhaitez modifier le contexte. Exemple :my-bucket
.OBJECT_NAME
correspond au nom encodé au format URL de l'objet. Par exemple,pets/dog.png
est 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_NAME
correspond au nom du bucket contenant l'objet dont vous souhaitez afficher le contexte. Exemple :my-bucket
OBJECT_NAME
correspond 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
cURL
pour appeler l'API JSON avec une requêteGET
Object :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_NAME
correspond au nom du bucket contenant l'objet dont vous souhaitez afficher le contexte. Exemple :my-bucket
.OBJECT_NAME
correspond 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-contexts
ou--custom-contexts-file
permettant de définir de nouveaux contextes pour l'objet de destination. - L'indicateur
--clear-custom-contexts
pour empêcher l'association des contextes de l'objet source à l'objet de destination. - Combinaison des indicateurs
--update-custom-contexts
et--remove-custom-contexts
permettant 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.custom
dans 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.