Я использовал стандартную настройку Django-Cookiecutter для Heroku, где Whitenoise обслуживал статические файлы, а S3 - медиафайлы.
Однако я хочу использовать «мультимедиа» для хранения определенных, более тяжелых файлов содержимого (pdf), которые будут меняться со временем, а не только загрузки пользовательских файлов, и изменение не должно требовать коллекторной статистики.(В конце концов я создам инструмент авторинга для загрузки файлов на S3, но на данный момент я просто вручную помещаю некоторые файлы, такие как pdf, в правильные подкаталоги S3 bucket.)
Стандартная настройка для Django-Cookiecutter:чтобы установить для MEDIA_URL полный адрес S3, например https://my-bucket.s3.amazonaws.com/media/some.pdf
... но я хочу получить доступ к этим файлам в моих шаблонах, используя относительный путь, например /media/some.pdf
, таким же образом, как я могу напрямую перейти к статическому контенту через /static
.
Мне нужен относительный URL-адрес, такой как /media/some.pdf
, потому что я использую атрибут download
в теге href, который должен загружать файл при нажатии, но с полным URL-адресом, указывающим на amazonaws.com,браузер игнорирует атрибут загрузки и просто загружает файл в браузер.
Существует ли простой способ настройки Django (работающий на Heroku с использованием Whitenoise для статического и S3 для медиа), чтобы вернуть файл из S3, когдадоступ через /media
?