Как мне загружать файлы с моего веб-сайта Django?

#html #django

#HTML #django

Вопрос:

У меня есть небольшой веб-сайт django, который позволяет загружать файлы, размещенные на pythonanywhere. Файлы загружаются в aws s3.

Теперь проблема в том, что даже при наличии атрибута download в html браузер по-прежнему отображает файл вместо его загрузки

 <a download href="{{file_url}}">Download</a>
 

Комментарии:

1. Вы проверяли страницу школ W3 по этому поводу? Я не знаю, отличается ли это вообще в Django, но там есть некоторая полезная информация.

2. Да, и я реализовал то, что я там видел, но все равно не работал

Ответ №1:

От Mozilla Developer Ссылка на сетевой элемент привязки:

«…. загрузка работает только для URL-адресов того же происхождения или blob: и data: schemes …»

Ваши ссылки на aws s3, скорее всего, имеют другое происхождение (тот же домен и т. Д.), Что и ваш сайт.

Если это то, с чем вы столкнулись, мне приходит в голову один способ обойти проблему: вы можете создать на своем сайте URL-адрес передачи, который получает идентификатор документа, загружается из aws s3, а затем пересылает его содержимое в качестве ответа. Таким образом, вы также можете управлять заголовками типа содержимого, которые вам может потребоваться явно настроить, чтобы браузер работал так, как вы хотите.

Одно дополнение, если вы решите использовать подобное решение, вы должны принять меры предосторожности, чтобы контролировать содержимое запроса, передающее URL, и передавать только то содержимое, для которого предназначен ваш веб-сайт. В противном случае вы откроете уязвимость, аналогичную так называемой уязвимости «Открытого перенаправления».

Комментарии:

1. Я действительно потерялся здесь. Я просто новичок с ограниченными знаниями. Можете ли вы подсказать мне, как это сделать. Пожалуйста