Gestion des versions des objets

Configuration Utilisation

La gestion des versions des objets conserve les objets supprimés en tant qu'objets archivés, avec des versions gérées, qui restent accessibles dans votre bucket jusqu'à leur suppression explicite. Cette fonctionnalité permet de suivre les modifications apportées aux objets et de permettre la récupération de versions spécifiques d'un objet. Cette page décrit la fonctionnalité ainsi que les options disponibles lors de son utilisation.

Nous vous recommandons d'utiliser la suppression réversible plutôt que la gestion des versions d'objets pour vous protéger contre la perte définitive de données due à des suppressions accidentelles ou malveillantes. Pour savoir dans quels cas utiliser la suppression réversible et la gestion des versions d'objets, consultez la section Remarques.

Introduction

Activez la gestion des versions d'objets pour un bucket. Une fois la fonctionnalité activée :

  • Cloud Storage conserve une version d'objet archivée chaque fois que vous remplacez ou supprimez une version d'objet active, tant que vous ne spécifiez pas le numéro de génération de la version active.

    • Les versions archivées conservent le nom de l'objet, mais elles sont identifiées de manière unique par un numéro de génération.

    • Les versions archivées ne s'affichent que dans les requêtes qui appellent explicitement à les inclure.

  • Pour supprimer une version archivée d'un objet, incluez le numéro de génération dans la requête de suppression ou utilisez la gestion du cycle de vie des objets.

  • Dans un bucket sur lequel la suppression réversible est activée, vous ne pouvez pas supprimer définitivement un objet archivé tant que la période de conservation de la suppression réversible n'est pas terminée. Lorsque vous supprimez un objet archivé, Cloud Storage le passe à l'état "Supprimé de façon réversible". Un objet supprimé de façon réversible est définitivement supprimé à l'expiration de la période de conservation de la suppression réversible.

  • Les versions archivées des objets existent indépendamment des versions actives.

Si vous désactivez la gestion des versions d'objets :

  • Le bucket n'accumule plus de nouvelles versions archivées des objets.

  • Les versions d'objet qui existent déjà dans le bucket ne sont pas affectées.

Remarques

  • La gestion des versions d'objets ne peut pas être activée sur un bucket qui possède actuellement une règle de conservation.
  • Il n'y a pas de limite par défaut au nombre de versions d'objet que vous pouvez posséder. Chaque version obsolète d'un objet est facturée au même tarif que sa version active.

  • Des frais de suppression anticipée ne s'appliquent que lorsqu'une version d'objet est supprimée du bucket, et non lorsque la version devient obsolète. La durée de stockage d'une version supprimée d'un bucket est basée sur l'heure à laquelle elle a été ajoutée, et non sur l'heure à laquelle elle est devenue obsolète.

  • Si vous activez la gestion des versions, pensez à utiliser la fonctionnalité de gestion du cycle de vie des objets, qui supprime les anciennes versions d'un objet après un certain temps ou lorsque des versions plus récentes sont archivées. Pour connaître une configuration possible, consultez l'exemple de configuration du cycle de vie pour la suppression d'objets.

  • Pour déterminer si vous souhaitez activer la gestion des versions d'objets ou la suppression réversible sur votre bucket, tenez compte des points suivants :

    • Si vous souhaitez éviter la perte permanente de données due à des suppressions accidentelles ou malveillantes, utilisez la suppression réversible plutôt que la gestion des versions d'objets. La suppression réversible offre une protection au niveau du bucket en conservant tous les objets actifs ou archivés récemment supprimés. Elle offre également une protection contre les suppressions au niveau des buckets.
    • Si vous avez des exigences de facturation spécifiques et que vous avez configuré des règles de gestion du cycle de vie des objets prédéterminées pour conserver un nombre spécifié de versions archivées, utilisez la gestion des versions d'objets.

      Dans un tel scénario, vous n'obtenez qu'une protection partielle contre les suppressions accidentelles, car la gestion des versions d'objets ne protège pas contre les événements au niveau du bucket ou les suppressions indésirables d'objets archivés.

    • Les objets archivés sont accessibles et lisibles, tandis que les objets supprimés de façon réversible sont conservés hors connexion et ne sont pas lisibles. La restauration d'objets supprimés de façon réversible nécessite des autorisations IAM spécifiques disponibles via le rôle IAM Administrateur de l'espace de stockage (roles/storage.admin).

      Si vous souhaitez avoir accès aux derniers objets supprimés et bénéficier d'un niveau de protection élevé contre la perte permanente de données due aux événements de suppression accidentels et malveillants, vous pouvez activer la gestion des versions d'objets et la suppression réversible sur le même bucket. Vous pouvez configurer la stratégie de gestion du cycle de vie des objets de manière à supprimer automatiquement les versions archivées après un nombre de jours spécifique, puis utiliser la suppression réversible pour fournir une couche de protection supplémentaire.

Métadonnées d'objet archivé

Les versions d'objets archivées ont leurs propres métadonnées, qui peuvent différer de celles des versions actives. Plus important encore, une version archivée conserve ses LCA et ne dispose pas nécessairement des mêmes autorisations que la version active.

Chaque version, qu'il s'agisse de l'objet actif ou archivé, possède un ensemble de métadonnées. Seul le dernier numéro de métagénération fait référence à des métadonnées. Les numéros plus anciens ne peuvent pas être utilisés pour accéder à des métadonnées qui ont été modifiées depuis.

Vous pouvez mettre à jour les métadonnées d'un objet archivé en spécifiant sa propriété generation dans votre requête. Pour garantir une sémantique sécurisée de lecture-modification-écriture, vous pouvez utiliser une condition préalable de correspondance de métagénération. L'utilisation de cette condition préalable entraîne l'échec de la mise à jour si les métadonnées que vous tentez de mettre à jour ont été modifiées entre le moment où vous les avez lues et l'envoi de la mise à jour.

Exemple de gestion des versions d'objets

Cet exemple montre ce qu'il advient du fichier cat.jpg dans un bucket sur lequel la gestion des versions d'objets et la suppression réversible sont activées lorsque vous remplacez, mettez à jour et supprimez le fichier.

Téléchargez une nouvelle image

Lorsque vous importez le fichier cat.jpg pour la première fois dans Cloud Storage, il se voit attribuer un numéro de generation et un numéro de metageneration. Dans cet exemple, le numéro de génération est 1360887697105000. Comme l'objet est nouveau, le numéro de metageneration est 1.

Le fichier cat.jpg reçoit les numéros de generation et de metageneration même si la gestion des versions d'objets n'est pas activée. Vous pouvez obtenir ces numéros en affichant les métadonnées d'objets.

Activez la gestion des versions d'objets

À ce stade, vous décidez d'activer la gestion des versions d'objets pour votre bucket. Cela n'a pas d'incidence sur les numéros de generation ou de metageneration du fichier cat.jpg.

Modifiez les métadonnées de l'image

Mettez à jour les métadonnées du fichier cat.jpg en ajoutant des métadonnées personnalisées : color:black. La mise à jour des métadonnées provoque une augmentation de la valeur metageneration du fichier cat.jpg. Dans le cas présent, cette valeur passe de 1 à 2. Cependant, l'objet lui-même demeure inchangé. Cloud Storage continue donc à ne stocker qu'une seule version du fichier cat.jpg, et le numéro de generation de la version reste défini sur 1360887697105000.

Transférez une nouvelle version de l'image

Importez une nouvelle version du fichier cat.jpg dans votre bucket Cloud Storage. La gestion des versions d'objets va ainsi faire passer l'objet cat.jpg existant à un état archivé. La version archivée conserve la même classe de stockage et les mêmes métadonnées qu'auparavant. La version archivée ne s'affiche que si vous demandez une liste avec versions gérées. Elle n'apparaît pas dans les commandes de listes normales. La version archivée est désormais référencée comme suit : cat.jpg#1360887697105000.

Dans le même temps, le fichier cat.jpg que vous venez d'importer devient la version active de l'objet. Ce nouveau fichier cat.jpg obtient son propre numéro de generation, dans le présent exemple : 1360887759327000. Il obtient également ses propres métadonnées et un numéro de metageneration d'une valeur de 1, ce qui signifie qu'il ne contient pas la métadonnée color:black, sauf si vous la lui spécifiez. Il s'agit de la version utilisée lorsque vous accédez au fichier cat.jpg, ou que vous le modifiez. Vous pouvez également faire référence à cette version de cat.jpg à l'aide de son numéro de generation. Par exemple, si vous utilisez Google Cloud CLI, vous ferez référence au fichier avec le numéro cat.jpg#1360887759327000.

Supprimez la version active de l'image

Vous souhaitez à présent supprimer le fichier cat.jpg. La version portant le numéro de génération 1360887759327000 est alors archivée. Votre bucket contient maintenant deux versions archivées du fichier cat.jpg et aucune version active. Vous pouvez toujours faire référence à l'une des versions archivées en utilisant son numéro de generation, mais si vous essayez d'accéder au fichier cat.jpg sans numéro de generation, votre requête échoue.

De même, une liste d'objets normale du bucket ne présentera pas le fichier cat.jpg comme l'un des objets du bucket. Pour découvrir comment répertorier les versions d'objets archivées, consultez la section Répertorier les versions d'objets archivées.

Désactivez la gestion des versions d'objets

La désactivation de la gestion des versions d'objets a pour but d'empêcher l'archivage des objets. Les versions archivées existantes des objets sont conservées dans Cloud Storage. Même si la gestion des versions d'objets est désactivée, cat.jpg#1360887697105000 et cat.jpg#1360887759327000 restent stockés dans votre bucket jusqu'à ce que vous les supprimiez.

Vous pouvez restaurer l'une des versions archivées.

Même si la gestion des versions d'objets est désactivée, vous pouvez créer une copie de l'une des versions archivées existantes, ce qui permet de restaurer la version. Une fois cette opération effectuée, votre bucket dispose de trois versions de cat.jpg : les deux versions archivées et la version active issue de la restauration.

Vous pouvez supprimer l'une des versions archivées.

Vous pouvez supprimer une version archivée d'un objet manuellement ou à l'aide de la gestion du cycle de vie des objets.

Lorsque vous supprimez une version archivée, cat.jpg#1360887697105000, elle est supprimée de façon réversible. Cet objet supprimé de façon réversible est conservé pendant toute la durée de conservation de la suppression réversible spécifiée dans la règle de suppression réversible du bucket. Une fois la durée de conservation expirée, Cloud Storage supprime définitivement la version supprimée de façon réversible de cet objet.

Vous pouvez restaurer l'une des versions d'objet supprimées de façon réversible.

Même si la gestion des versions d'objets est désactivée, vous pouvez restaurer une version supprimée de façon réversible d'un objet archivé. Une copie d'une version supprimée de façon réversible est restaurée en tant que version active, avec de nouvelles métadonnées d'objet et une nouvelle date de création. L'objet supprimé de façon réversible d'origine reste également dans le bucket et est définitivement supprimé une fois que la durée de conservation de la suppression réversible est arrivée à terme.

Tableau de référence de la gestion des versions d'objets

Ce tableau de référence indique ce qui se produit lorsque vous effectuez certaines actions de gestion des versions d'objets.

État de la gestion des versions d'objets État de la suppression réversible Action Résultat
Désactivée Désactivée
Supprimez dog.png dog.png est définitivement supprimé.
Supprimer une version archivée de dog.png en spécifiant son numéro de génération1 La version archivée est définitivement supprimée.
Remplacez dog.png par une nouvelle version. La nouvelle version remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est définitivement supprimée.
Remplacer une version archivée dog.png par une version active1 Une copie de la version archivée remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est définitivement supprimée.
Désactivée Activé
Supprimez dog.png dog.png est supprimé de façon réversible.
Supprimer une version archivée de dog.png en spécifiant son numéro de génération1 La version archivée est supprimée de façon réversible.
Remplacez dog.png par une nouvelle version. La nouvelle version remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est supprimée de façon réversible.
Remplacer une version archivée dog.png par une version active1 Une copie de la version archivée remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est supprimée de façon réversible.
Activé Désactivée
Supprimer la version active de dog.png sans spécifier son numéro de génération La version active est archivée et conserve le même numéro de génération.
Supprimer la version active de dog.png en spécifiant son numéro de génération La version active est définitivement supprimée.
Supprimer une version archivée de dog.png en spécifiant son numéro de génération La version archivée est définitivement supprimée.
Remplacez dog.png par une nouvelle version. La nouvelle version remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est archivée et conserve le même numéro de génération.
Remplacer une version archivée de dog.png par une version active Une copie de la version archivée remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est archivée et conserve le même numéro de génération.
Activé Activé
Supprimer la version active de dog.png sans spécifier son numéro de génération La version active est archivée et conserve le même numéro de génération.
Supprimer la version active de dog.png en spécifiant son numéro de génération La version active est supprimée de façon réversible.
Supprimer une version archivée de dog.png en spécifiant son numéro de génération La version archivée est supprimée de façon réversible.
Remplacez dog.png par une nouvelle version. La nouvelle version remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est archivée et conserve le même numéro de génération.
Remplacer une version archivée de dog.png par une version active Une copie de la version archivée remplace la version active et reçoit un nouveau numéro de génération. L'ancienne version active est archivée et conserve le même numéro de génération.

1 Une version archivée peut exister si la gestion des versions d'objets a été activée pour ce bucket.

Comportement de restauration de fichiers

Vous pouvez restaurer une version d'objet archivée dans la version active actuelle. Pour obtenir des instructions détaillées à ce sujet, consultez la section Restaurer des versions d'objet archivées.

Lorsque vous effectuez cette opération avec la gestion des versions d'objets activée, s'il existe déjà une version active de l'objet dans votre bucket, Cloud Storage la remplace, mais la conserve également en tant que nouvelle version archivée. Dans ce cas, votre bucket contient l'objet remplacé (à présent archivé) et deux copies de l'objet précédemment archivé (une copie active et une copie déjà archivée), toutes ces versions entraînant des frais de stockage. Pour éviter des frais inutiles, supprimez la version obsolète utilisée pour créer la copie active actuelle, ou configurez la gestion du cycle de vie des objets pour supprimer les objets obsolètes lorsqu'ils remplissent les conditions que vous avez spécifiées.

Étapes suivantes