Métadonnées des objets

Accéder aux exemples

Cette page traite des champs de métadonnées stockés avec des objets dans Cloud Storage.

Présentation

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. De plus, lorsque vous utilisez l'API XML, la taille combinée de l'URL de la requête et des en-têtes HTTP est limitée à 16 ko. Vous devez, par conséquent, tenir compte de cette limite pour la taille totale de vos métadonnées.

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

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. Cache-Control s'applique uniquement dans le cadre de l'accès à des objets qui :

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 doit être mis en cache nulle part.

  • 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éfinir max-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 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.

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 documentation https://tools.ietf.org/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 acceptées pour ces métadonnées.

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.

Métadonnées personnalisées

Les métadonnées personnalisées sont des métadonnées que vous pouvez ajouter et supprimer. Pour créer des métadonnées personnalisées, vous devez spécifier une clé et une valeur. Une fois que vous avez 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 de l'objet à l'aide des en-têtes de requête. Pour distinguer clairement les en-têtes de métadonnées personnalisés des en-têtes de requête standards, l'API XML ajoute le préfixe x-goog-meta- aux en-têtes de métadonnées personnalisées.

Certains outils utilisant l'API XML appliquent également cette convention. Par exemple, lorsque vous définissez des métadonnées personnalisées avec gsutil, vous devez inclure le préfixe x-goog-meta-. Notez que gsutil supprime le préfixe lorsque vous l'utilisez pour afficher les métadonnées d'un objet.

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.

Étape suivante