You’re kind of stuck with what S3 allows you to do here. You can have
one of the following:
The ugly URL and private files.
The plain URL and public files (the URL doesn’t expire, in other
words).
Some system you engineer yourself that fetches the file from S3 on
your server, and then streams it to the end user, behind a URL of your
devising: example.com/private_files/12345.jpg or something like that.
Downside to this last one is that you pay three times the bandwidth for
a single file (once on S3, and again on your server to download it and
then stream it back), and make your user wait three times as long to get
the file.
Walter
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.