Le versioning protège vos données au niveau du bucket en conservant les versions historiques des objets lorsqu'ils sont écrasés ou supprimés. Cette fonctionnalité vous permet de restaurer n'importe quel objet dans une version antérieure.
Cas d'utilisation
Utilisez le versioning dans les scénarios suivants pour protéger vos données.
-
Suppression accidentelle de données
OSS ne disposant pas de corbeille, le versioning constitue le principal moyen de récupérer les données supprimées par erreur.
-
Écrasement de fichiers
Pour les fichiers fréquemment modifiés (lecteurs cloud, outils collaboratifs), le versioning vous permet de récupérer n'importe quelle version précédente.
Notes d'utilisation
-
Facturation
Le versioning lui-même est gratuit. Toutefois, toutes les versions d'objet (actuelles et historiques) entraînent des frais de stockage. Utilisez des règles de cycle de vie pour supprimer automatiquement les versions historiques inutiles. Pour plus d'informations, consultez la rubrique Règles de cycle de vie. Les requêtes et le trafic générés par le téléchargement ou la restauration des versions historiques sont également facturés. Consultez la section Mesure et facturation. Pour arrêter complètement tous les frais OSS, supprimez toutes les données du bucket (y compris les objets, les parties et les versions précédentes) ainsi que le bucket lui-même. Pour plus d'informations, consultez la rubrique Supprimer un bucket pour arrêter la facturation.
-
Autorisations
Seul le propriétaire du bucket et les utilisateurs Resource Access Management (RAM) disposant de l'autorisation PutBucketVersioning peuvent configurer le versioning.
-
Fonctionnalités mutuellement exclusives
Si le versioning d'un bucket est activé ou suspendu :
La règle interdisant l'écrasement des objets ne s'applique pas. Consultez la rubrique Interdire l'écrasement des objets.
L'en-tête de requête
x-oss-forbid-overwrite, utilisé pour empêcher l'écrasement d'un objet, ne prend pas effet lors des uploads. Pour plus d'informations, consultez la rubrique PutObject.
-
Versioning et OSS-HDFS
N'activez pas le service OSS-HDFS et le versioning sur le même bucket. Cela pourrait entraîner une instabilité du service. Pour garantir un fonctionnement stable, suspendez le versioning dès que possible et configurez une règle de cycle de vie pour nettoyer les marqueurs de suppression.
États du versioning
Le versioning d'un bucket peut se trouver dans l'un des trois états suivants : Désactivé (par défaut), Activé ou Suspendu.
Par défaut, le versioning est désactivé pour un bucket. Une fois activé, le versioning ne peut pas revenir à l'état Désactivé. Il peut uniquement être suspendu.
Lorsque le versioning est activé, OSS conserve les versions historiques des objets. Pour plus d'informations, consultez la rubrique Gérer les objets versionnés.
Lorsque le versioning est suspendu, un objet nouvellement uploadé remplace la version actuelle d'un objet portant le même nom. Les versions historiques existantes sont conservées. Pour plus d'informations, consultez la rubrique Gérer les objets dans un bucket dont le versioning est suspendu.
Toutes les versions d'objet entraînent des coûts de stockage. Utilisez des règles de cycle de vie pour transférer les versions vers des classes de stockage moins coûteuses (telles que Infrequent Access ou Archive) ou pour supprimer les versions historiques inutiles. Pour plus d'informations, consultez la rubrique Réduire les coûts de stockage en combinant les règles de cycle de vie basées sur la dernière date de modification avec le versioning.
Protection des données
Le tableau suivant décrit les différences de comportement lors de l'écrasement et de la suppression d'objets selon les états du versioning.
|
État du versioning |
Écraser un objet |
Supprimer un objet |
|
Désactivé |
L'objet existant est écrasé et ne peut pas être restauré. Vous pouvez uniquement récupérer la dernière version de l'objet. |
L'objet est définitivement supprimé et ne peut pas être récupéré. |
|
Activé |
Une nouvelle version est créée. Les versions historiques ne sont pas affectées. |
L'objet est marqué comme supprimé. Les versions historiques ne sont pas affectées et peuvent être restaurées. |
|
Suspendu |
Une nouvelle version est créée. Si une version du même objet existe déjà depuis la période de suspension, la nouvelle version l'écrase. Les autres versions historiques ne sont pas affectées. |
L'objet est marqué comme supprimé. Si un marqueur de suppression pour le même objet existe déjà depuis la période de suspension, le nouveau marqueur l'écrase. Les autres versions historiques ne sont pas affectées. |
Activer le versioning
Suspendre le versioning
Afficher les versions
Restaurer une version
Opérations API associées
Les opérations précédentes sont implémentées sur la base d'opérations API. Si votre programme nécessite un haut degré de personnalisation, vous pouvez appeler directement les opérations API REST. Notez que vous devez écrire manuellement le code pour calculer les signatures. Pour plus d'informations, consultez la rubrique PutBucketVersioning.
Utiliser les politiques de rétention
Dans des scénarios tels que la protection des sauvegardes (Veeam), le suivi des modifications d'actifs (schémas de conception de circuits) ou l'archivage de conformité (finance), vous pouvez avoir besoin d'autoriser les mises à jour des données tout en conservant toutes les versions historiques immuables. Activez à la fois le versioning et une politique de rétention : le versioning préserve les versions historiques lors d'un écrasement ou d'une suppression, tandis que la politique de rétention empêche toute version d'être supprimée ou modifiée pendant la période de protection.
Le versioning et les politiques de rétention fonctionnent conjointement selon les principes suivants :
Ordre d'activation des fonctionnalités : Vous pouvez activer le versioning et les politiques de rétention dans n'importe quel ordre.
-
Configurations autorisées :
Politique de rétention + Versioning désactivé
Politique de rétention + Versioning activé
-
Restrictions :
Vous ne pouvez pas activer une politique de rétention pour un bucket dont le versioning est suspendu.
-
Une fois qu'une politique de rétention est activée, les restrictions suivantes s'appliquent à l'état du versioning :
Vous ne pouvez pas modifier l'état de Activé à Suspendu.
Vous ne pouvez pas modifier l'état de Désactivé à Suspendu.
-
Mécanisme de protection des versions d'objet :
La politique de rétention protège toutes les versions d'un objet. Aucune version ne peut être supprimée ou modifiée pendant la période de protection.
Vous pouvez uploader un objet portant le même nom pour créer une nouvelle version, mais cette nouvelle version est également protégée par la politique de rétention.
La politique de rétention ne s'applique pas aux marqueurs de suppression. La suppression des marqueurs de suppression n'est pas restreinte par la politique de rétention.
-
Interaction avec la réplication des données :
Les buckets source et destination supportent des configurations indépendantes pour le versioning et les politiques de rétention.
Les informations de version sont transférées normalement pendant la réplication. Le bucket destination gère les versions en fonction de sa propre configuration.
Tenter de supprimer une version répliquée dans le bucket destination échouera si elle est protégée par une politique de rétention, mais réussira après l'expiration de la politique.