code: func (d *driver) Delete(ctx context.Context, path string) error {
  	blobRef := d.client.GetContainerReference(d.container).GetBlobReference(path)
  	ok, err := blobRef.DeleteIfExists(nil)
  	if err != nil {
  		return err
  	}
  	if ok {
  		return nil // was a blob and deleted, return
  	}
  
  	// Not a blob, see if path is a virtual container with blobs
  	blobs, err := d.listBlobs(d.container, path)
  	if err != nil {
  		return err
  	}
  
  	for _, b := range blobs {
  		blobRef = d.client.GetContainerReference(d.container).GetBlobReference(b)
  		if err = blobRef.Delete(nil); err != nil {
  			return err
  		}
  	}
  
  	if len(blobs) == 0 {
  		return storagedriver.PathNotFoundError{Path: path}
  	}
  	return nil
  }
docs: // Delete recursively deletes all objects stored at "path" and its subpaths.