Comment définir une politique d'expiration sur les buckets DigitalOcean Spaces

0
155

L'interface Web DigitalOcean Spaces ne permet pas de définir des règles de cycle de vie des compartiments. Voici comment appliquer les paramètres d'expiration qui suppriment automatiquement les fichiers après une période de temps définie. Cela fait de Spaces un emplacement plus approprié pour les sauvegardes et les fichiers journaux en rotation.

Bien que cette fonctionnalité ne soit pas dans l'interface utilisateur de DigitalOcean, elle est prise en charge par le backend Spaces. Spaces est compatible avec les API Amazon S3 afin que les clients de ligne de commande puissent définir des politiques de cycle de vie basées sur S3. Les étapes détaillées ci-dessous devraient également fonctionner avec d'autres fournisseurs de stockage d'objets qui implémentent des API S3.

Mise en route

Vous aurez besoin de l'AWS CLI installée pour suivre ce didacticiel. Une fois qu'il est installé, la première tâche consiste à fournir des informations d'identification afin que la CLI puisse accéder à votre compte DigitalOcean.

Dirigez-vous vers le panneau de configuration DigitalOcean dans votre navigateur. Cliquez sur “API” lien en bas de la barre latérale bleue à gauche de votre écran. Ensuite, cliquez sur le bouton “Générer une nouvelle clé” à droite des “Touches d'accès aux espaces” en-tête.

Donnez un nom à votre nouvelle clé, puis cliquez sur la coche pour terminer le processus. Votre clé et son secret correspondant s'afficheront. Notez ces valeurs car il est impossible de récupérer la partie secrète après avoir quitté l'écran.

Publicité

Revenez à votre terminal et exécutez aws configure. On vous demandera votre clé d'accès et votre secret. Suivez les invites interactives pour fournir les valeurs que vous avez générées dans l'interface Web de DigitalOcean.

Malheureusement, ce n'est toujours pas la fin de la configuration de la CLI. Une limitation importante du client S3 officiel est son incapacité à enregistrer des URL de point de terminaison personnalisées avec vos informations d'identification. Cela signifie que vous devez spécifier explicitement l'URL de l'API DigitalOcean avec chaque commande que vous exécutez :

aws s3 ls –endpoint=https://nyc3.digitaloceanspaces.com –bucket my-bucket

La commande ci-dessus affichera les objets dans le bucket my-bucket de votre compte Spaces. Si vous avez omis l'indicateur –endpoint, l'interface de ligne de commande S3 supposerait que vous essayez de vous connecter à un compte AWS. L'URL du point de terminaison doit correspondre à la région du centre de données DigitalOcean dans laquelle vous avez créé votre espace – remplacez le sous-domaine nyc3 par la région que vous utilisez.

Création de votre politique

Les politiques de cycle de vie du bucket sont définies comme des fichiers JSON qui décrivent les règles que vous souhaitez appliquer. Créez un nouveau fichier à l'aide de votre éditeur de texte préféré et ajoutez le contenu suivant :

{ "Règles" : [ { "ID" : "Elaguer les anciens fichiers", "Statut" : "Activé", "Préfixe" : "", "Expiration": { "Jours" : 30 } } ] }

Le JSON est une représentation déclarative de la politique à appliquer. Les attributs de la stratégie et son état actuel sont tous deux spécifiés dans le fichier.

Cet exemple supprimera les fichiers 30 jours après leur téléchargement. La définition de Status sur Enabled active la stratégie, tandis qu'un préfixe vide l'applique à chaque élément du compartiment. Vous pouvez utiliser le champ Préfixe pour supprimer de manière sélective uniquement certains objets, tels que ceux du sous-répertoire temp/.

Application de la stratégie

Vous devez ensuite utiliser l'AWS CLI pour appliquer votre stratégie à votre compartiment :

aws s3api put-bucket-lifecycle- configuration –bucket my-bucket –endpoint https://nyc3.digitaloceanspaces.com –lifecycle-configuration file://my-policy.json Advertisement

Remplacez my-bucket par le nom du compartiment avec lequel vous souhaitez utiliser vos règles d'expiration.

La CLI lira votre fichier JSON de stratégie et le joindra au compartiment. Tant que le statut est activé, les règles de cycle de vie s'appliqueront immédiatement. Vous commencerez à voir les objets nouvellement téléchargés quitter votre compartiment lorsqu'ils dépassent le seuil d'expiration.

Vous pouvez vérifier que votre politique a été appliquée en la relisant à partir de la CLI :

aws s3api get-bucket-lifecycle-configuration –bucket my-bucket –endpoint https://nyc3.digitaloceanspaces.com

Cela devrait vous montrer le JSON que vous avez soumis.

Utilisation de plusieurs règles

Vous pouvez inclure plusieurs éléments dans votre tableau Rules JSON. Cela vous permet d'appliquer des politiques d'expiration uniques à différents groupes d'objets, en utilisant le champ Préfixe :

{ "Règles": [ { "ID": "Elaguer les factures", "Statut": "facture", "Préfixe": "I", "Expiration": { "Jours": 90 } }, { "ID" : "Élaguer les citations", "Status" :"Activé", "Préfixe" :"Q", "Expiration" : {"Jours" : 30 } } ] }

Cette politique supprimerait les devis après 30 jours tout en laissant les factures en vigueur pendant 90 jours. Chaque compartiment prend en charge jusqu'à 100 règles de cycle de vie individuelles.

Abandon des échecs de téléchargement

Un autre rôle des stratégies de cycle de vie est le nettoyage après l'échec des téléchargements en plusieurs parties. Lorsque vous ajoutez des fichiers volumineux via les API S3, ils sont divisés en sections pouvant être diffusées en continu pour améliorer les performances et la résilience aux interruptions de réseau.

Publicité

Vous pouvez vous retrouver avec des morceaux partiels dans votre compartiment si une partie de téléchargement échoue. Ajoutez le champ AbortIncompleteMultipartUpload à une stratégie de cycle de vie pour supprimer ces fragments redondants.

{ “Règles” : [ { “ID” : “AbortIncompleteMultipartUpload”, "Préfixe" : "", "Status" : "Activé", "AbortIncompleteMultipartUpload" : { "DaysAfterInitiation" : 1 } } ] }

Cette stratégie nettoie les morceaux de téléchargement incomplets un jour après leur démarrage, libérant potentiellement de l'espace de stockage. Lorsque des morceaux sont supprimés, vous ne pourrez plus reprendre le téléchargement d'origine – les clients devront le redémarrer depuis le début.

Résumé

DigitalOcean Spaces prend en charge les politiques de cycle de vie S3, mais vous devez les appliquer à l'aide de l'API. Une fois configurés, vos téléchargements seront supprimés automatiquement après une période de temps définie, vous assurant que les anciens fichiers ne gaspillent pas d'espace de stockage et n'augmentent pas votre facture.

Bien que Spaces implémente les politiques d'expiration de la même manière comme S3, d'autres formes de politique de cycle de vie ne sont pas disponibles sur la plate-forme DigitalOcean. Un autre élément clé de l'ensemble de fonctionnalités S3 est la possibilité de transférer des objets entre les classes de stockage, comme une migration automatique vers le stockage d'archivage après 30 jours. La facturation des espaces est beaucoup plus simple avec un seul plan disponible, de sorte que ces politiques n'auront pas d'effet sur les compartiments DigitalOcean.