If the borrowed vs owned is known statically (e.g. some method returns always owned) then you can have two types Blob and BlobRef<'a> for owned and borrowed. There's foreign types crate for this.
If ownership can change at run time, then you'll need something like libstd's Cow for this, Cow<'a, Blob>.