Come impostare una politica di scadenza sui bucket di DigitalOcean Spaces

0
167

L'interfaccia web di DigitalOcean Spaces non fornisce un modo per impostare politiche del ciclo di vita del secchio. Ecco come applicare le impostazioni di scadenza che eliminano automaticamente i file dopo un determinato periodo di tempo. Ciò rende Spaces una posizione più adatta per i backup ruotati e i file di registro.

Anche se questa funzione non è nell'interfaccia utente di DigitalOcean, è supportata dal backend di Spaces. Spaces è compatibile con le API di Amazon S3, quindi i client della riga di comando possono impostare policy del ciclo di vita basate su S3. I passaggi descritti di seguito dovrebbero funzionare anche con altri provider di storage di oggetti che implementano le API S3.

Per iniziare

Avrai bisogno dell'AWS CLI installata per seguire questo tutorial. Una volta installato, il primo compito è fornire le credenziali in modo che la CLI possa accedere al tuo account DigitalOcean.

Vai al pannello di controllo di DigitalOcean nel tuo browser. Fare clic sull' “API” collegamento nella parte inferiore della barra laterale blu a sinistra dello schermo. Quindi, fai clic sul pulsante “Genera nuova chiave” a destra dei “tasti di accesso a Spaces” intestazione.

Assegna un nome alla tua nuova chiave, quindi fai clic sul segno di spunta per completare il processo. Verranno visualizzati la tua chiave e il relativo segreto. Prendi nota di questi valori poiché è impossibile recuperare la parte segreta dopo aver lasciato lo schermo.

Annuncio

Torna al tuo terminale ed esegui aws configure. Ti verranno chiesti la chiave di accesso e il segreto. Segui le istruzioni interattive per fornire i valori generati nell'interfaccia web di DigitalOcean.

Sfortunatamente questa non è ancora la fine della configurazione della CLI. Una limitazione significativa del client S3 ufficiale è la sua incapacità di salvare URL di endpoint personalizzati insieme alle tue credenziali. Ciò significa che devi specificare esplicitamente l'URL dell'API DigitalOcean con ogni comando che emetti:

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

Il comando sopra mostrerà gli oggetti nel bucket my-bucket del tuo account Spaces. Se hai omesso il flag –endpoint, la CLI S3 supporrà che stai tentando di connetterti a un account AWS. L'URL dell'endpoint deve corrispondere alla regione del datacenter DigitalOcean in cui hai creato il tuo spazio in – sostituisci il sottodominio nyc3 con la regione che stai utilizzando.

Creazione della tua policy

Le policy del ciclo di vita del bucket sono definite come file JSON che descrivono le regole che vuoi applicare. Crea un nuovo file utilizzando il tuo editor di testo preferito e aggiungi il seguente contenuto:

{ "Regole": [ { "ID": "Elimina vecchi file", "Stato": "Abilitato", "Prefisso": "", "Scadenza": { "Giorni" : 30 } } ] }

Il JSON è una rappresentazione dichiarativa del criterio da applicare. Gli attributi del criterio e il suo stato corrente sono entrambi specificati all'interno del file.

Questo esempio eliminerà i file 30 giorni dopo il loro caricamento. L'impostazione di Stato su Abilitato attiva il criterio, mentre un Prefisso vuoto lo applica a ogni elemento nel bucket. Puoi utilizzare il campo Prefisso per eliminare selettivamente solo determinati oggetti, come quelli nella sottodirectory temp/.

Applicazione della policy

Poi devi utilizzare l'AWS CLI per applicare la policy al tuo bucket:

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

Sostituisci my-bucket con il nome del bucket con cui desideri utilizzare le regole di scadenza.

La CLI leggerà il file JSON della tua policy e lo allegherà al bucket. Finché lo stato è abilitato, le regole del ciclo di vita verranno applicate immediatamente. Inizierai a vedere gli oggetti appena caricati lasciare il tuo bucket quando superano la soglia di scadenza.

Puoi controllare che le tue norme siano state applicate leggendole dalla CLI:

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

Questo dovrebbe mostrarti il ​​JSON che hai inviato.

Uso di più regole

Puoi includere più elementi nell'array JSON delle regole. Ciò consente di applicare criteri di scadenza univoci a diversi gruppi di oggetti, utilizzando il campo Prefisso:

{ "Regole": [ { "ID": "Elimina fatture", "Stato": "fattura", "Prefisso": "I", "Scadenza": { "Giorni": 90 } }, { "ID": "Pota quotazioni", "Stato": "Abilitato", "Prefisso": "Q", "Scadenza": { "Giorni": 30 } } ] }

Questa norma eliminerebbe i preventivi dopo 30 giorni, lasciando le fatture in vigore per 90 giorni. Ogni bucket supporta fino a 100 regole del ciclo di vita individuali.

Interruzione dei caricamenti non riusciti

Un altro ruolo delle policy del ciclo di vita è la pulizia dopo i caricamenti multiparte non riusciti. Quando aggiungi file di grandi dimensioni tramite le API S3, vengono suddivisi in sezioni in streaming per migliorare le prestazioni e la resilienza alle interruzioni della rete.

Pubblicità

Puoi finire con pezzi parziali seduti nel tuo secchio se una parte di caricamento non viene completata. Aggiungi il campo AbortIncompleteMultipartUpload a un criterio del ciclo di vita per rimuovere questi blocchi ridondanti.

{ "Regole": [ { "ID": "AbortIncompleteMultipartUpload", "Prefisso": "", "Stato" : "Abilitato", "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 1 } } ] }

Questo criterio pulisce i blocchi di caricamento incompleti un giorno dopo l'avvio, liberando potenzialmente spazio di archiviazione. Quando i blocchi vengono eliminati, non sarai in grado di riprendere di nuovo il caricamento originale – i client dovranno riavviarlo dall'inizio.

Riepilogo

DigitalOcean Spaces supporta le politiche del ciclo di vita S3, ma devi applicarle utilizzando l'API. Una volta configurati, i tuoi caricamenti verranno eliminati automaticamente dopo un periodo di tempo prestabilito, dandoti la certezza che i vecchi file non stanno sprecando spazio di archiviazione e aumentando la fattura.

Anche se Spaces implementa le politiche di scadenza allo stesso modo come S3, altre forme di politica del ciclo di vita non sono disponibili sulla piattaforma DigitalOcean. Un altro componente chiave del set di funzionalità di S3 è la capacità di trasferire gli oggetti tra le classi di archiviazione, ad esempio una migrazione automatica allo spazio di archiviazione dopo 30 giorni. La fatturazione per gli spazi è molto più semplice con un solo piano disponibile, quindi queste norme non avranno effetto sui bucket DigitalOcean.