Place a "DOWNLOAD" button on each of my product pages that is gated by membership?

I am looking to place a "DOWNLOAD" button on each of my product pages that is gated by membership status. I am gathering this can be done by gating a shortcode.

However, I can find little documentation on the complete set of shortcodes, or how to embed any like this.

Also, IDEALLY I'd like this URL to be masked and hosted externally (these files can be pretty large, and I anticipate having a large load from customers). Does this file download have to be hosted at my own domain?