Så här ställer du in en utgångspolicy för DigitalOcean Spaces -skopor

0
140

DigitalOcean Spaces webbgränssnitt erbjuder inte ett sätt att ställa in bucket livscykelpolicyer. Så här tillämpar du utgångsinställningar som automatiskt tar bort filer efter en viss tidsperiod. Detta gör Spaces till en mer lämplig plats för roterade säkerhetskopior och loggfiler.

Även om den här funktionen inte finns i DigitalOcean UI, stöds den av Spaces backend. Spaces är kompatibelt med Amazon S3 API: er så att kommandoradsklienter kan ställa in S3-baserade livscykelpolicyer. Stegen som beskrivs nedan bör också fungera med andra objektlagringsleverantörer som implementerar S3 API: er.

Komma igång

Du behöver AWS CLI installerat för att följa med den här självstudien. När det väl är installerat är den första uppgiften att ange referenser så att CLI kan komma åt ditt DigitalOcean -konto.

Gå till DigitalOcean kontrollpanel i din webbläsare. Klicka på “ API ” länk längst ner i det blå sidofältet till vänster på skärmen. Klicka sedan på “ Generera ny nyckel ” knappen till höger om “ Spaces åtkomstnycklar ” rubrik.

Ge ditt nya nyckel ett namn och klicka sedan på bocken för att slutföra processen. Din nyckel och motsvarande hemlighet visas. Notera dessa värden eftersom det är omöjligt att hämta den hemliga delen efter att du lämnat skärmen.

Annonsering

Återgå till din terminal och kör aws configure. Du kommer att bli ombedd om din åtkomstnyckel och hemlighet. Följ de interaktiva uppmaningarna för att ange de värden du genererade i DigitalOceans webbgränssnitt.

Tyvärr är detta fortfarande inte slutet på CLI -installationen. En betydande begränsning för den officiella S3 -klienten är dess oförmåga att spara anpassade slutpunktsadresser tillsammans med dina referenser. Detta innebär att du måste uttryckligen ange DigitalOcean API-URL med varje kommando du utfärdar:

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

Kommandot ovan visar objekten i my-bucket-hinken i ditt Spaces-konto. Om du utelämnade –endpoint -flaggan skulle S3 CLI anta att du försöker ansluta till ett AWS -konto. Slutpunktens URL måste matcha den DigitalOcean -datacenterregion som du skapade ditt utrymme i – ersätt nyc3-underdomänen för regionen du använder.

Skapa din policy

Bucket lifecycle policies definieras som JSON-filer som beskriver reglerna du vill tillämpa. Skapa en ny fil med din favorittextredigerare och lägg till följande innehåll:

{& quot; Regler & quot ;: [{& quot; ID & quot ;: & quot; Beskära gamla filer & quot ;, & quot; Status & quot ;: & quot ;, & quot; Prefix & quot ;: & quot ;, & quot; Utgång & quot ;: “” & quot; dagar & quot; : 30}}]}}

JSON är en deklarativ representation av policyn som ska tillämpas. Policys attribut och dess nuvarande tillstånd är båda angivna i filen.

Detta exempel tar bort filer 30 dagar efter att de har laddats upp. Om du ställer in Status på Aktiverad aktiveras policyn, medan ett tomt prefix tillämpar det på varje objekt i hinken. Du kan använda prefixfältet för att selektivt radera bara vissa objekt, till exempel de i temp/underkatalogen.

Tillämpa policyn

Därefter måste du använda AWS CLI för att tillämpa din policy på din hink:

aws s3api put-bucket-lifecycle- konfiguration –bucket my-bucket –endpoint https://nyc3.digitaloceanspaces.com –lifecycle-konfigurationsfil: //my-policy.json Annonsering

Ersätt my-bucket med namnet på hink du vill använda dina utgångsregler med.

CLI kommer att läsa din policy JSON -fil och bifoga den till hinken. Så länge statusen är aktiverad gäller livscykelreglerna omedelbart. Du kommer att börja se nyuppladdade objekt lämna din hink när de passerar tröskelvärdet för utgången.

Du kan kontrollera din policy genom att läsa den från CLI:

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

Detta ska visa dig JSON du skickade.

Använda flera regler

Du kan inkludera flera objekt i din Rules JSON -array. Detta låter dig tillämpa unika utgångspolicyer för olika grupper av objekt med prefixfältet:

{& quot; Rules & quot ;: [{& quot; ID & quot ;: & quot; Prune Invoices & quot ;, & quot; Status & quot ;: & quot; faktura & quot ;, & quot; Prefix & quot ;: & quot ;, & quot; Utgång & quot ;: “” & quot; dagar & quot ;: 90}}, {& quot; ID & quot ;: & quot; Prune Quotations & quot;, & quot; Status & quot ;: “Enabled”, “Prefix”: “Q”, & quot; Expiration & quot ;: {“quot” dagar “30}} ]}

Denna policy skulle ta bort offert efter 30 dagar medan fakturor skulle leva i 90 dagar. Varje hink stöder upp till 100 individuella livscykelregler.

Avbryta misslyckade uppladdningar

En annan roll för livscykelregler är att städa efter misslyckade flerdelade uppladdningar. När du lägger till stora filer via S3 -API: erna delas de i strömningsbara sektioner för att förbättra prestanda och motståndskraft mot nätverksavbrott.

Annonsering

Du kan sluta med bitar i din hink om en uppladdningsdel inte slutförs. Lägg till fältet AbortIncompleteMultipartUpload i en livscykelpolicy för att ta bort dessa överflödiga bitar.

{& quot; Regler & quot ;: [{& quot; ID “:” AbortIncompleteMultipartUpload “,” prefix “& quot; & quot ;, & quot; : & quot; Enabled & quot ;, & quot; AbortIncompleteMultipartUpload & quot ;: {& quot; DaysAfterInitiation & quot ;: 1}}]}}

Denna policy rensar ofullständiga uppladdningsbitar en dag efter att de startades, vilket möjligen frigör lite lagringsutrymme. När bitar raderas kommer du inte att kunna återuppta den ursprungliga uppladdningen igen – klienter måste starta om det från början.

Sammanfattning

DigitalOcean Spaces stöder S3 livscykelpolicyer men du måste använda dem med API: et. När de har konfigurerats kommer dina uppladdningar att raderas automatiskt efter en viss tidsperiod, vilket ger dig förtroende för att gamla filer inte slösar lagringsutrymme och höjer din faktura.

Även om Spaces implementerar utgångspolicyer på samma sätt som S3 är andra former av livscykelpolicy inte tillgängliga på DigitalOceans plattform. En annan viktig komponent i S3: s funktionsuppsättning är möjligheten att överföra objekt mellan lagringsklasser, till exempel en automatisk migrering till arkivlagring efter 30 dagar. Fakturering för utrymmen är mycket enklare med bara en plan tillgänglig så dessa policyer kommer inte att påverka DigitalOcean -skopor.