Amazon's S3 provides a great way to serve static files to your users. You can use it with Cloudfront to grant user's temporary access to files held in a private bucket using Signed URLs.
What you'll need
- Setup a private S3 bucket
- Add a file
- Setup cloudfront for the bucket
- Setup a signing script
- Generate signed URL with Node