I extended a ModelAdmin with a custom field \"Download file\", which is a link to a URL in my Django project, like:
http://www.myproject.com/downloads/1
Rather than proxying, why not simply redirect?
Use the django view at www.myproject.com/downloads/1 to serve a HTTP Redirect to the S3 storage URL - it's possible to generate time-limited authenticated URLs e.g. see here https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html
Then the client downloads the file directly from S3, but the contents is still secure and access has to come through your Django application