Een vervalbeleid instellen voor DigitalOcean Spaces-buckets

0
53

De webinterface van DigitalOcean Spaces biedt geen manier om levenscyclusbeleid voor buckets. Hier leest u hoe u verloopinstellingen toepast die automatisch bestanden verwijderen na een ingestelde tijdsperiode. Dit maakt Spaces een geschiktere locatie voor geroteerde back-ups en logbestanden.

Hoewel deze functie niet in de gebruikersinterface van DigitalOcean zit, wordt deze wel ondersteund door de backend van Spaces. Spaces is compatibel met Amazon S3-API's, zodat opdrachtregelclients S3-gebaseerd levenscyclusbeleid kunnen instellen. De onderstaande stappen zouden ook moeten werken met andere aanbieders van objectopslag die S3-API's implementeren.

Aan de slag

Je hebt de AWS CLI nodig om deze tutorial te kunnen volgen. Zodra het is geïnstalleerd, is de eerste taak het verstrekken van inloggegevens zodat de CLI toegang heeft tot uw DigitalOcean-account.

Ga naar het DigitalOcean-configuratiescherm in uw browser. Klik op de “API” link onderaan de blauwe zijbalk aan de linkerkant van uw scherm. Klik vervolgens op de knop 'Nieuwe sleutel genereren'. knop rechts van de “Toegangstoetsen voor Spaces” kop.

Geef uw nieuwe sleutel een naam en klik vervolgens op het vinkje om het proces te voltooien. Uw sleutel en het bijbehorende geheim worden weergegeven. Noteer deze waarden, want het is onmogelijk om het geheime deel terug te vinden nadat je het scherm hebt verlaten.

Advertentie

Ga terug naar je terminal en voer aws configure uit. U wordt om uw toegangssleutel en geheim gevraagd. Volg de interactieve aanwijzingen om de waarden op te geven die u hebt gegenereerd in de webinterface van DigitalOcean.

Helaas is dit nog steeds niet het einde van de CLI-configuratie. Een belangrijke beperking van de officiële S3-client is het onvermogen om aangepaste eindpunt-URL's op te slaan naast uw inloggegevens. Dit betekent dat u de DigitalOcean API-URL expliciet moet specificeren bij elke opdracht die u geeft:

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

Met de bovenstaande opdracht worden de objecten weergegeven in de mijn-bucket-emmer van uw Spaces-account. Als je de –endpoint-vlag hebt weggelaten, gaat de S3 CLI ervan uit dat je probeert verbinding te maken met een AWS-account. De eindpunt-URL moet overeenkomen met de DigitalOcean-datacenterregio waarin u uw ruimte hebt gemaakt in – vervang het nyc3-subdomein door de regio die u gebruikt.

Uw beleid maken

Bucket-levenscyclusbeleid wordt gedefinieerd als JSON-bestanden die beschrijven de regels die u wilt toepassen. Maak een nieuw bestand met uw favoriete teksteditor en voeg de volgende inhoud toe:

{ "Regels": [ { "ID": "Prune oude bestanden", "Status": "Ingeschakeld", "Prefix": "", "Expiration": { "Days" : 30 } } ] }

De JSON is een declaratieve weergave van het toe te passen beleid. De kenmerken van het beleid en de huidige status worden beide gespecificeerd in het bestand.

In dit voorbeeld worden bestanden 30 dagen nadat ze zijn geüpload verwijderd. Door Status in te stellen op Ingeschakeld, wordt het beleid geactiveerd, terwijl een leeg voorvoegsel het op elk item in de bucket toepast. U kunt het veld Prefix gebruiken om selectief alleen bepaalde objecten te verwijderen, zoals die in de subdirectory temp/.

Het beleid toepassen

Vervolgens moet u de AWS CLI gebruiken om uw beleid op uw bucket toe te passen:

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

Vervang mijn-bucket door de naam van de bucket waarmee u uw vervalregels wilt gebruiken.

De CLI leest uw beleids-JSON-bestand en voegt het toe aan de bucket. Zolang de Status is ingeschakeld, zijn de levenscyclusregels onmiddellijk van toepassing. U zult zien dat nieuw geüploade objecten uw bucket verlaten zodra ze de drempel voor de vervaldatum overschrijden.

U kunt controleren of uw beleid is toegepast door het terug te lezen in de CLI:

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

Dit zou u de JSON moeten tonen die u heeft ingediend.

Meerdere regels gebruiken

U kunt meerdere items opnemen in uw Rules JSON-array. Hiermee kunt u een uniek verloopbeleid toepassen op verschillende groepen objecten, met behulp van het veld Prefix:

{ "Regels": [ { "ID": "Facturen opschonen", "Status": "factuur", "Prefix": "I", "Expiration": { "Days": 90 } }, { “ID”: “Prune Quotations”, “Status”: “Ingeschakeld”, “Prefix”: “Q”, “Expiration”: { “Days”: 30 } } ] }

Dit beleid verwijdert offertes na 30 dagen, terwijl facturen 90 dagen blijven staan. Elke bucket ondersteunt maximaal 100 individuele levenscyclusregels.

Mislukte uploads afbreken

Een andere rol van levenscyclusbeleid is het opschonen na mislukte meerdelige uploads. Wanneer u grote bestanden toevoegt via de S3-API's, worden ze opgedeeld in streambare secties om de prestaties en veerkracht tegen netwerkuitval te verbeteren.

Advertentie

U kunt eindigen met gedeeltelijke brokken die in uw emmer zitten als een uploadgedeelte niet wordt voltooid. Voeg het veld AbortIncompleteMultipartUpload toe aan een levenscyclusbeleid om deze overbodige chunks te verwijderen.

{ "Rules": [ { "ID": "AbortIncompleteMultipartUpload", "Prefix": "", "Status" : "Ingeschakeld", "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 1 } } ] }

Met dit beleid worden onvolledige uploadblokken één dag nadat ze zijn gestart, opgeschoond, waardoor er mogelijk wat opslagruimte vrijkomt. Wanneer chunks zijn verwijderd, kunt u de oorspronkelijke upload niet meer hervatten – clients moeten het vanaf het begin opnieuw opstarten.

Samenvatting

DigitalOcean Spaces ondersteunt S3-levenscyclusbeleid, maar u moet ze toepassen met behulp van de API. Eenmaal geconfigureerd, worden uw uploads automatisch verwijderd na een bepaalde tijdsperiode, zodat u erop kunt vertrouwen dat oude bestanden geen opslagruimte verspillen en uw rekening verhogen.

Hoewel Spaces het verloopbeleid op dezelfde manier implementeert als S3 zijn andere vormen van levenscyclusbeleid niet beschikbaar op het platform van DigitalOcean. Een ander belangrijk onderdeel van de functieset van S3 is de mogelijkheid om objecten tussen opslagklassen over te zetten, zoals een automatische migratie naar archiefopslag na 30 dagen. Facturering voor Spaces is veel eenvoudiger met slechts één beschikbaar abonnement, dus dit beleid heeft geen effect op DigitalOcean-buckets.