Get a reference of Azure blob by the full Uri not the blob name?

I did face similar issue , since i already had valid container reference this worked for me :

CloudBlockBlob blockblob = container.GetBlockBlobReference(new CloudBlockBlob(blobUri).Name);

It is possible to do this creating the CloudBlockBlob with this constructor:

public CloudBlockBlob(Uri blobAbsoluteUri)

In your case, assuming uri is of type Uri and not just a string:

CloudBlockBlob blob = new CloudBlockBlob(uri);

You might need to use your credentials if the blob isn't public or the uri doesn't contain SAS credentials (like to one you included). In that case you will need this constructor:

public CloudBlockBlob(Uri blobAbsoluteUri, StorageCredentials credentials)

As stated by Zhaoxing Lu - Microsoft on the comments,

Public access is read only access, you need to specify the storage account key or Shared Access Signature for deleting operation.