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 de navigateurs et d'Internet, 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. Le réseau Cloud Storage ne prend en compte que le paramètre Cache-Control
d'un objet lorsqu'il accède à des objets qui :
- sont accessibles au public ;
- ne sont pas stockés dans un bucket pour lequel les paiements du demandeur sont activés.
- ne sont pas chiffrés à l'aide de clés de chiffrement fournies par le client.
Cloud Storage respecte les valeurs standards pour Cache-Control
, telles que :
public
: l'objet peut être mis en cache n'importe où.private
: l'objet peut être mis en cache dans le cache local du demandeur.no-cache
: l'objet peut être mis en cache, mais il ne peut pas être utilisé pour répondre aux requêtes futures, sauf s'il a été préalablement validé par Cloud Storage.no-store
: l'objet ne peut pas être mis en cache.max-age=TIME_IN_SECONDS
: durée pendant laquelle un objet peut être mis en cache avant d'être considéré comme obsolète. Vous pouvez définirmax-age
sur n'importe quelle durée. Les objets obsolètes ne sont plus diffusés à partir d'un cache, sauf dans certains cas.
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 objets les plus anciens 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. 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.
Pour en savoir plus sur la mise en cache avec Cloud Storage et Cloud CDN, consultez la section Mise en cache.
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.
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.