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
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Utilizzare DeepSeek R1 con Azure AI
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Il nuovo controllo Range di Blazor 9
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Utilizzare gRPC su App Service di Azure
Utilizzare il trigger SQL con le Azure Function
Escludere alcuni file da GitHub Secret Scanning
Generare velocemente pagine CRUD in Blazor con QuickGrid
Combinare Container Queries e Media Queries
Utilizzare Azure AI Studio per testare i modelli AI
Creare gruppi di client per Event Grid MQTT