protected int eraseBlob(BlobClient blobClient, String eraseReason) {
    Timer.Context storageTimer = azureMetrics.blobCompactionLatency.time();
    BlobRequestConditions blobRequestConditions = new BlobRequestConditions().setIfMatch("*");
    Response<Void> response = blobClient.deleteWithResponse(DeleteSnapshotsOptionType.INCLUDE,
        blobRequestConditions, Duration.ofMillis(cloudConfig.cloudRequestTimeout), Context.NONE);
    storageTimer.stop();
    switch (response.getStatusCode()) {
      case HttpStatus.SC_ACCEPTED:
        logger.trace("[ERASE] Erased blob {}/{} from Azure blob storage, reason = {}, status = {}",
            blobClient.getContainerName(), blobClient.getBlobName(), eraseReason, response.getStatusCode());
        break;
      case HttpStatus.SC_NOT_FOUND:
        // If you're trying to delete a blob, then it must exist.
        // If it doesn't, then there is something wrong in the code. Go figure it out !
      default:
        // Just increment a counter and set an alert on it. No need to throw an error and fail the thread.
        logger.error("[ERASE] Failed to erase blob {}/{} from Azure blob storage, reason = {}, status {}",
            blobClient.getContainerName(), blobClient.getBlobName(), eraseReason, response.getStatusCode());
    }
    return response.getStatusCode();
  }
Erases a blob permanently, including all snapshots of it from Azure Storage.

@param blobClient  Client for the blob
@param eraseReason Reason to delete
@return True if blob deleted, else false.
ambry-cloud/src/main/java/com/github/ambry/cloud/azure/AzureCloudDestinationSync.java