Gestion du cycle de vie
Configurez, inspectez et maintenez les règles de cycle de vie des objets RustFS avec le client en ligne de commande rc.
La gestion du cycle de vie RustFS applique des règles d’expiration et de transition aux objets d’un compartiment (bucket). Cette page montre comment gérer ces règles avec rc, vérifier une transition et restaurer une copie locale temporaire des données transférées.
Avant de commencer, installez rc, configurez un alias nommé local et créez my-bucket. Pour faire transiter des objets, enregistrez d’abord la cible dans Stockage hiérarchisé et notez son nom de niveau en majuscules.
Évaluation asynchrone
Les règles de cycle de vie ne traitent pas immédiatement chaque objet éligible. Le scanner d’objets évalue le travail de cycle de vie en arrière-plan.
Ajouter une règle d’expiration
Faites expirer les objets du préfixe logs/ 30 jours après leur création :
rc bucket lifecycle rule add local/my-bucket \
--prefix logs/ \
--expiry-days 30La commande crée une règle activée et renvoie l’ID de règle généré. Notez cet ID si vous devez modifier ou supprimer cette règle précise.
Ajouter une règle de transition
Déplacez les données d’objet vers le niveau enregistré COLDTIER au bout de 90 jours :
rc bucket lifecycle rule add local/my-bucket \
--transition-days 90 \
--storage-class COLDTIER--storage-class doit correspondre au nom d’un niveau enregistré. L’ajout de la règle ne crée pas le niveau et ne valide pas un libellé de classe de stockage AWS en tant que niveau RustFS.
Vous pouvez combiner des options d’expiration et de transition dans une même règle. N’utilisez les options de versions non actuelles que pour un compartiment dont la gestion des versions est activée :
rc bucket lifecycle rule add local/my-bucket \
--noncurrent-transition-days 30 \
--noncurrent-transition-storage-class COLDTIER \
--noncurrent-expiry-days 365Inspecter et mettre à jour les règles
Listez les règles actuelles et notez l’ID de la règle à modifier :
rc bucket lifecycle rule list local/my-bucketModifiez la durée d’expiration d’une règle, ou désactivez-la sans la supprimer :
rc bucket lifecycle rule edit local/my-bucket \
--id <rule-id> \
--expiry-days 60
rc bucket lifecycle rule edit local/my-bucket \
--id <rule-id> \
--disable trueSupprimez une règle par son ID. N’utilisez --all que si vous avez l’intention de supprimer toute la configuration de cycle de vie du compartiment :
rc bucket lifecycle rule remove local/my-bucket --id <rule-id>
rc bucket lifecycle rule remove local/my-bucket --allExporter et importer les règles
Exportez la configuration de cycle de vie du compartiment avant une modification groupée :
rc bucket lifecycle rule export local/my-bucket > lifecycle.jsonL’importation d’un fichier remplace la configuration de cycle de vie envoyée au compartiment. Examinez le JSON avant de l’appliquer :
rc bucket lifecycle rule import local/my-bucket lifecycle.jsonConfirmer une transition de cycle de vie
Lorsqu’un objet devient éligible au regard de sa règle de cycle de vie, inspectez-le sur le cluster source :
aws s3api head-object \
--bucket my-bucket \
--key hello.txt \
--endpoint-url http://localhost:9000Une fois la transition terminée, la réponse indique le nom du niveau enregistré comme classe de stockage :
{
"StorageClass": "COLDTIER"
}La réponse peut contenir d’autres métadonnées d’objet. Avant la fin de la transition, StorageClass peut être absent ou ne pas encore indiquer COLDTIER.
Lisez l’objet via le point de terminaison RustFS source, comme d’habitude :
aws s3 cp \
s3://my-bucket/hello.txt \
/path/to/hello.txt \
--endpoint-url http://localhost:9000RustFS lit les données transférées via le compartiment source et la clé d’objet. Les applications n’ont pas besoin de s’adresser directement au compartiment cible.
Restaurer une copie locale
Demandez une copie locale temporaire d’un objet transféré et conservez-la pendant sept jours :
rc bucket lifecycle restore local/my-bucket/hello.txt --days 7Pendant le rapatriement, HEAD indique x-amz-restore: ongoing-request="true". Une fois l’opération terminée, il indique ongoing-request="false" avec une date d’expiration. Une seconde restauration soumise alors qu’une restauration est en cours renvoie RestoreAlreadyInProgress.
À l’expiration de la période de restauration, RustFS supprime la copie locale restaurée et ses métadonnées de restauration. L’objet transféré reste disponible depuis le niveau distant.
Compatibilité des commandes
La dernière version de rc accepte aussi rc ilm comme alias de compatibilité. Nous recommandons la forme rc bucket lifecycle, qui place le nom en premier, pour les nouvelles commandes et les scripts :
rc bucket lifecycle --help
rc bucket lifecycle rule --help
rc bucket lifecycle tier --helpÉtapes suivantes
Consultez Stockage hiérarchisé pour surveiller ou maintenir les niveaux distants, et utilisez la création d’objets pour créer des objets de test d’une règle de cycle de vie.