Cette page traite des champs de métadonnées couramment utilisés qui sont stockés avec les objets dans Cloud Storage.
Introduction
Les objets stockés dans Cloud Storage sont associés à des métadonnées.
Les métadonnées identifient les propriétés de l'objet et spécifient la manière dont il doit être géré lorsqu'on y accède. Les métadonnées existent sous forme de paires clé/valeur. Par exemple, la classe de stockage d'un objet est représentée par l'entrée de métadonnées storageClass:STANDARD
. storageClass
est la clé des métadonnées, et tous les objets se voient associés à une clé de ce type.
STANDARD
spécifie la valeur de cet objet spécifique, qui varie d'un objet à l'autre.
La mutabilité des métadonnées est variable : certaines métadonnées peuvent être modifiées à tout moment, certaines ne peuvent être définies qu'au moment de la création de l'objet et d'autres peuvent être uniquement affichées. Par exemple, vous pouvez modifier la valeur des métadonnées Cache-Control
à tout moment, mais vous ne pouvez attribuer les métadonnées storageClass
que lorsque l'objet est créé ou réécrit. Vous ne pouvez pas non plus modifier directement la valeur des métadonnées generation
, bien que la valeur generation
change lorsque l'objet est remplacé.
Métadonnées modifiables
Pour les objets, il existe deux catégories de métadonnées que les utilisateurs peuvent modifier :
Métadonnées à clé fixe : métadonnées dont les clés sont définies, mais pour lesquelles vous pouvez spécifier une valeur
Métadonnées personnalisées : métadonnées que vous ajoutez en spécifiant à la fois une clé et une valeur associée à la clé
Lors de la modification de métadonnées, vous devez généralement éviter les caractères non ASCII, car ceux-ci ne sont pas autorisés dans les en-têtes HTTP utilisés par l'API XML.
Métadonnées à clé fixe
Si vous disposez des autorisations suffisantes pour le faire, vous pouvez modifier les métadonnées suivantes pour les objets :
- Métadonnées de contrôle des accès
- Cache-Control
- Content-Disposition
- Content-Encoding
- Content-Language
- Content-Type
- Custom-Time
- Préservations d'objets à titre conservatoire
- Configuration de la conservation
Métadonnées de contrôle des accès
Cloud Storage utilise l'outil IAM (Identity and Access Management) et des listes de contrôle d'accès (LCA) pour contrôler l'accès aux objets. Utilisez ces liens pour en savoir plus sur ces méthodes de contrôle des accès et les métadonnées associées.
Cache-Control
Les métadonnées Cache-Control
peuvent spécifier deux aspects différents de la diffusion de données à partir de Cloud Storage : elles indiquent si les données peuvent être mises en cache et si celles-ci peuvent être transformées.
Mettre des données en cache
Les métadonnées Cache-Control
vous permettent de définir les autorisations de mise en cache de vos objets par les caches, ainsi que la durée de mise en cache. Les objets mis en cache peuvent alors être diffusés pour répondre à des requêtes ultérieures. Les caches peuvent inclure des caches de navigateur et d'Internet, ainsi que la mise en cache intégrée de Cloud Storage.
Si un objet concerné ne présente pas d'entrée de métadonnées Cache-Control
, Cloud Storage utilise la valeur par défaut de :
public, max-age=3600
, si l'objet n'est pas chiffré à l'aide d'une clé de chiffrement gérée par le client ou stocké dans un périmètre de service cloud privé virtuel.no-cache, no-store, max-age=0
, si l'objet est chiffré à l'aide d'une clé de chiffrement gérée par le client.private, max-age=0
, si l'objet est stocké dans un périmètre de service cloud privé virtuel.no-cache, no-store, max-age=0, must-revalidate
, si l'objet est stocké dans un périmètre de service cloud privé virtuel et chiffré à l'aide d'une clé de chiffrement gérée par le client.
Si vous autorisez la mise en cache, il est possible que les versions antérieures des objets soient visibles au moment du téléchargement, même après l'importation d'un nouvel objet de remplacement. En effet, les versions plus anciennes restent dans le cache pendant un certain temps défini par max-age
. De plus, il n'existe aucun moyen de forcer l'expiration globale d'un objet mis en cache, étant donné que les objets peuvent être mis en cache à différents endroits sur Internet. Cela signifie que si vous révoquez l'accès public à un objet, cet objet peut toujours être diffusé à partir d'un cache, en fonction de la date de son dernier accès et de son paramètre Cache-Control
. Par exemple, si votre objet a été diffusé avec les métadonnées Cache-Control
définies sur public, max-age=3600
, il peut être conservé dans un cache pendant une heure. Si vous souhaitez empêcher la diffusion des versions mises en cache d'objets lisibles publiquement, définissez Cache-Control: no-store
sur ces objets.
Si vous avez besoin d'un contrôle accru sur le comportement du cache, vous pouvez configurer Cloud CDN devant votre bucket.
Transformer les données
Les métadonnées Cache-Control
vous permettent également de diffuser les objets tels qu'ils sont stockés, sans appliquer aux données de transformation telle que la suppression du codage de contenu gzip pour les clients incompatibles. Pour diffuser un objet tel quel, définissez le paramètre Cache-Control:no-transform
.
Content-Disposition
Les métadonnées Content-Disposition
spécifient la présentation des données en cours de transmission. Définir Content-Disposition
vous permet de contrôler le style de présentation du contenu, par exemple de déterminer si une pièce jointe doit être affichée automatiquement ou si une action de l'utilisateur est requise pour l'ouvrir. Pour plus d'informations sur la spécification de Content-Disposition
, consultez la page https://datatracker.ietf.org/doc/html/rfc6266.
Content-Encoding
Les métadonnées Content-Encoding
peuvent être utilisées pour indiquer qu'un objet est compressé, tout en conservant les métadonnées Content-Type
sous-jacentes de l'objet.
Par exemple, un fichier texte compressé au format gzip peut présenter des métadonnées indiquant qu'il s'agit d'un fichier texte dans Content-Type
, et des métadonnées indiquant qu'il est compressé au format gzip dans Content-Encoding
. Vous devez vous assurer avant de transférer les fichiers que ceux-ci sont effectivement compressés conformément au paramètre Content-Encoding
spécifié. Dans le cas contraire, cela peut entraîner un comportement inattendu lors du téléchargement des objets. Pour en savoir plus, consultez la page sur le transcodage.
Pour le contenu compressible, tel que du texte, l'utilisation de Content-Encoding: gzip
permet de réduire les coûts de stockage et de réseau, et d'améliorer les performances de diffusion du contenu. Toutefois, il est préférable d'éviter d'appliquer un autre niveau de compression aux contenus déjà intrinsèquement compressés, tels que les archives et de nombreux formats de supports, et de les marquer dans les métadonnées Content-Encoding
. En effet, cela est généralement préjudiciable à la fois pour la taille et les performances des objets.
Content-Language
Les métadonnées Content-Language
indiquent la ou les langues auxquelles l'objet est destiné. Reportez-vous aux codes de langue ISO 639-1 pour connaître les valeurs types de ces métadonnées.
Cloud Storage accepte les valeurs Content-Language
comportant jusqu'à 100 caractères.
Content-Type
Les métadonnées les plus couramment définies sont Content-Type
(également appelées type de contenu multimédia), qui permettent aux navigateurs d'afficher correctement l'objet. Tous les objets ont une valeur définie dans leurs métadonnées Content-Type
, mais cette valeur ne correspond pas nécessairement au type sous-jacent de l'objet. Par exemple, si la valeur de Content-Type
n'est pas spécifiée à l'importation et ne peut pas être déterminée, elle est définie sur application/octet-stream
ou sur application/x-www-form-urlencoded
, selon le mode de transfert de l'objet. Pour obtenir la liste des types de contenus valides, consultez la page Types de contenus IANA.
Custom-Time
Les métadonnées Custom-Time
sont une date et une heure spécifiées par l'utilisateur au format RFC 3339 YYYY-MM-DD'T'HH:MM:SS.SS'Z'
ou YYYY-MM-DD'T'HH:MM:SS'Z'
lorsque le nombre de millisecondes est égal à zéro. Ces métadonnées sont généralement définies sur la condition DaysSinceCustomTime
de la gestion du cycle de vie des objets.
Vous ne pouvez pas supprimer Custom-Time
une fois qu'il a été défini sur un objet. De plus, la valeur de Custom-Time
ne peut pas diminuer. Autrement dit, vous ne pouvez pas définir Custom-Time
sur une date/heure antérieure à la valeur actuelle de Custom-Time
. Toutefois, vous pouvez de fait supprimer ou réinitialiser Custom-Time
en réécrivant l'objet.
Préservations d'objets à titre conservatoire
Utilisez des options de métadonnées pour placer des préservations à titre conservatoire relatives aux objets, qui empêchent la suppression ou le remplacement de ceux-ci. Pour en savoir plus, consultez la page Préservation à titre conservatoire des objets.
Configuration de la conservation
La configuration de conservation d'un objet définit la date et l'heure auxquelles l'objet ne peut plus être supprimé ni remplacé. Pour en savoir plus, consultez la page Verrou de conservation des objets.
Métadonnées personnalisées
Les métadonnées personnalisées sont des métadonnées pour lesquelles vous définissez à la fois la clé et la valeur. Pour créer des métadonnées personnalisées, vous devez spécifier une clé et une valeur. Après avoir créé une paire de métadonnées personnalisées key:value
, vous pouvez supprimer la clé ou modifier la valeur.
Les métadonnées personnalisées sont soumises à une limite de taille et entraînent des frais de stockage.
Sur la page Afficher et modifier des métadonnées, vous trouverez des informations sur la définition de métadonnées personnalisées.
Préfixe x-goog-meta-
L'API XML définit et récupère les métadonnées d'objet à l'aide des en-têtes de requête, et l'API JSON permet de définir des métadonnées personnalisées dans la requête finale d'une importation avec reprise à l'aide d'en-têtes de requêtes. Pour distinguer clairement les en-têtes de métadonnées personnalisés des en-têtes de requête standards, les deux API ajoutent le préfixe x-goog-meta-
à ces en-têtes de métadonnées personnalisées.
Métadonnées non modifiables
Certaines métadonnées ne peuvent pas être modifiées directement. Ces métadonnées sont définies au moment de la création ou de la réécriture de l'objet. Dans le cadre de la création ou de la réécriture de l'objet, vous pouvez définir certaines métadonnées, telles que la classe de stockage de l'objet ou les clés de chiffrement gérées par le client. D'autres métadonnées sont ajoutées automatiquement et ne sont accessibles qu'en lecture, par exemple le numéro de génération de l'objet, ou sa date et son heure de création.
Numéros de génération et de métagénération
Dans ses métadonnées, chaque objet Cloud Storage possède une propriété generation
numérique et une propriété metageneration
numérique qui l'identifie de manière unique :
Propriété | Description |
---|---|
generation |
Identifie la version d'un objet et existe pour chaque objet, qu'un bucket utilise la gestion des versions d'objets ou non.
|
metageneration |
Identifie la version de métadonnées et augmente chaque fois que les métadonnées d'un generation donné sont mises à jour.
|
Les propriétés generation
et metageneration
sont utilisées dans les cas suivants :
Lorsque vous utilisez des conditions préalables dans des requêtes : les conditions préalables entraînent l'échec de la requête si la condition préalable n'est pas remplie. Cette méthode empêche l'application de la requête à une version inattendue d'un objet, telle que la récupération de données d'objet incorrectes ou la modification d'un état incorrect dans les métadonnées d'un objet.
Lors d'opérations visant à répertorier, accéder, restaurer et supprimer des versions d'objet archivées : les versions d'objets archivées sont spécifiquement concernées dans les buckets qui utilisent ou ont utilisé par le passé la gestion des versions d'objets.
Sommes de contrôle
Les sommes de contrôle sont des métadonnées calculées à partir des données de l'objet associé. Les sommes de contrôle permettent de vérifier que les données de l'objet ne sont pas corrompues. Les objets Cloud Storage comportent plusieurs champs de métadonnées de somme de contrôle.
CRC32C
Tous les objets Cloud Storage ont un hachage de type CRC32C. Les bibliothèques permettant de calculer un hachage CRC32C incluent :
- CRC32C de Google pour C++
- hash/crc32 pour Go
- GoogleAPIs Guava pour Java
- google-crc32c pour Python
- digest-crc en Ruby
Le CRC32C encodé en base64 est classé par ordre d'octets en mode big-endian.
MD5
Les objets Cloud Storage disposent d'un hachage MD5 s'ils répondent aux critères suivants :
- L'objet n'est pas un objet composite.
- L'objet n'a pas été importé à l'aide d'une importation en plusieurs parties de l'API XML.
Ce hachage ne s'applique qu'à un objet complet. Il ne peut donc pas être utilisé pour vérifier l'intégrité des téléchargements partiels en cas d'exécution d'une plage GET.
ETags
Tous les objets Cloud Storage sont associés à un ETag. Cependant, le même objet peut avoir une valeur ETag différente lorsqu'elle est demandée par l'API XML plutôt que par l'API JSON. Dans tous les autres cas, les utilisateurs ne doivent faire aucune hypothèse concernant la valeur utilisée dans un ETag, sauf qu'elle change chaque fois que les données ou métadonnées sous-jacentes sont modifiées, conformément à la spécification.
L'en-tête ETag d'un objet renvoie la valeur MD5 de l'objet si toutes les conditions suivantes sont remplies :
- La requête est effectuée via l'API XML.
- L'objet n'utilise que des clés appartenant à Google et gérées par Google pour le chiffrement côté serveur.
- L'objet n'est pas un objet composite et n'a pas été importé à l'aide d'une importation en plusieurs parties de l'API XML.
Date et heure de modification
Dans ses métadonnées, chaque objet Cloud Storage possède une propriété updated
qui indique la date/heure de dernière modification des métadonnées de cet objet. La date/heure updated
est initialement définie sur l'heure de création de l'objet, puis change chaque fois que les métadonnées de l'objet sont modifiées. Cela inclut les modifications apportées par un demandeur, telles que la modification des métadonnées personnalisées, ainsi que les modifications apportées par Cloud Storage au nom d'un demandeur, telles que la modification de la classe de stockage en fonction d'une Configuration du cycle de vie des objets.
Étape suivante
- Affichez et modifiez les métadonnées d'objet.
- En savoir plus sur les classes de stockage disponibles.
- Pour obtenir une description détaillée de tous les champs de métadonnées d'objet disponibles dans l'API JSON, consultez la documentation de référence des objets pour JSON.
- Découvrez les rapports d'inventaire Storage Insights, qui vous permettent d'obtenir simultanément les métadonnées de tous les objets d'un bucket.