Что я хочу сделать, это загрузить файл из Amazon S3. Я искал способы сделать это, но это не сработало. Я видел этот вопрос и использовал один из кодов ответа, но он не сработал, поэтому я пытаюсь сделать что-то другое.
Что я сделал, так это.
html
<a href="#" download="{{ file.file.url }}">{{ file.filename }}</a>
когда я щелкаю по имени файла, на самом деле начинается загрузка, но файл не работает. Он говорит, что мы не поддерживаем тип файла.
Я думаю, это потому, что путь неправильный. Когда я проверяю элемент в браузере, путь выглядит правильным, но когда я загружаю файл, имя файла выглядит как https__...
, а не https://
Как я могу это исправить? В чем причина?
Сейчас я проверяю, работает ли он на локальном компьютере.
Обновление
мой текущий код
В итоге я создал вид для загрузки файла, но он все равно не работает даже на производстве. Содержимое файла всегда пусто. Для файла изображения его нельзя открыть.
def download_file(request, file_pk):
file = get_object_or_404(File, pk=file_pk)
name = file.file.name
path_to_file = "https://%s/media/%s" % (settings.AWS_S3_CUSTOM_DOMAINm name)
resp = HttpResponse(content_type='application/force-download')
resp['Content-Disposition'] = "attachment; filename=%s" % name
resp['X-Sendfile'] = path_to_file
return resp