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, 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
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 toute perte de données permanente due à des suppressions accidentelles ou malveillantes, utilisez la suppression réversible plutôt que la gestion des versions des 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 peut également protéger 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 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 degeneration
et un numéro demetageneration
. Dans cet exemple, le numéro de génération est1360887697105000
. Comme l'objet est nouveau, le numéro demetageneration
est1
.Le fichier
cat.jpg
reçoit les numéros degeneration
et demetageneration
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 demetageneration
du fichiercat.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 valeurmetageneration
du fichiercat.jpg
. Dans le cas présent, cette valeur passe de1
à2
. Cependant, l'objet lui-même demeure inchangé. Cloud Storage continue donc à ne stocker qu'une seule version du fichiercat.jpg
, et le numéro degeneration
de la version reste défini sur1360887697105000
.- 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'objetcat.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 fichiercat.jpg
obtient son propre numéro degeneration
, dans le présent exemple :1360887759327000
. Il obtient également ses propres métadonnées et un numéro demetageneration
d'une valeur de1
, ce qui signifie qu'il ne contient pas la métadonnéecolor:black
, sauf si vous la lui spécifiez. Il s'agit de la version utilisée lorsque vous accédez au fichiercat.jpg,
ou que vous le modifiez. Vous pouvez également faire référence à cette version decat.jpg
à l'aide de son numéro degeneration
. Par exemple, si vous utilisez Google Cloud CLI, vous ferez référence au fichier avec le numérocat.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ération1360887759327000
est alors archivée. Votre bucket contient maintenant deux versions archivées du fichiercat.jpg
et aucune version active. Vous pouvez toujours faire référence à l'une des versions archivées en utilisant son numéro degeneration
, mais si vous essayez d'accéder au fichiercat.jpg
sans numéro degeneration
, 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
etcat.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 | ||
Supprimer 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é | ||
Supprimer 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
- Découvrez comment Activer la gestion des versions d'objets.
- Utilisez des objets archivés.
- Découvrez les propriétés de l'objet de génération et métagénération.
- Découvrez la gestion du cycle de vie des objets, qui vous permet de gérer automatiquement les versions des objets.
- Consultez un exemple de gestion du cycle de vie des objets qui fonctionne avec la gestion des versions d'objets.