Per depositare file in modo affidabile e scalabile, Azure Storage è lo strumento principale da usare sulla piattaforma cloud. Su di esso si basano moltissimi servizi Microsoft e rispetto ad un file system tradizionale offre molte più funzionalità: scaling, replica, lease, snapshot, encryption e accesso via REST.
Tra le funzionalità che possiamo sfruttare esiste anche il soft delete, cioè la facoltà di non cancellare definitivamente un blob, ma di marcarlo semplicemente come cancellato. Questo fa sì che nel periodo di retention configurato possiamo recuperare il file e renderlo nuovamente disponibile. Questa funzionalità è comoda in quelle situazioni in cui è possibile che accidentalmente qualcuno o qualcosa possa cancellare la risorsa. L'attivazione o la disattivazione sono possibili in qualsiasi momento direttamente API o dal portale.

Possiamo configurare la retention fino ad un massimo di 365 giorni, ma dobbiamo considerare che per delete non è considera la sola operazione di DELETE, ma anche qualsiasi POST o PUT. Ogni operazione di cambiamento sul file scatena la creazione di uno snapshot. Anche l'eventuale cancellazione di uno snapshot fa sì che questo non venga immediatamente rimosso, ma posticipato a fine retention.
I file cancellati non sono visibili normalmente e dobbiamo listarli in modo esplicito, attraverso la spunta del portale.

Tramite API, invece, disponiamo di un enum apposito e per recuperare un blob cancellato possiamo utilizzare il metodo Undelete.
// Recupero di tutti i blob cancellati foreach (CloudBlob blob in container.ListBlobs(useFlatBlobListing: true, blobListingDetails: BlobListingDetails.Deleted)) { blob.Undelete(); }
Da un punto di vista del pricing dobbiamo considerare che gli snapshot di blob sovrascritti o cancellati vanno comunque ad ampliare la dimensione dello spazio occupato. La creazione automatica di uno snapshot, invece, non viene conteggiata come transazione, ma vengono contate solo le operazioni che hanno generato lo snapshot.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Impostare dinamicamente il nome di una run di un workflow di GitHub
Usare Azure Application Gateway come reverse proxy per ASP.NET Core
Pubblicare la documentazione di un repository con GitHub Pages
Definire la durata dell'output cache in ASP.NET Core 7
Intercettare gli eventi di creazione degli oggetti con Entity Framework 7
Elencare le container images installate in un cluster di Kubernetes
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Utilizzare gli snapshot con Azure File shares
Introduzione alla security con GitHub
Q# for Quantum Programming, an "only for the brave" session
Utilizzare la parola chiave file nel codice C#
Effettuare l'upload di un file via FTP con la libreria FluentFTP di .NET
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2022 - Milano e Online