This is achieved by removing SaveBlob from the public API and only returning it via a uploader object that is passed in by WithBlobUploader.
The new method combines both step into a single wrapper function. Thus it ensures that both are always called in pairs. As an additional benefit this slightly reduces the boilerplate to upload blobs.