"NotImplementedError at /myfile/download/8" при загрузке zip-файла в Django

Я пытаюсь загрузить zip-файл, который содержит несколько файлов в одном или разных форматах. Этот zip-файл загружается после нажатия на кнопку "Загрузить".

Эта функциональность отлично работает на локальном сервере разработки. Но после развертывания веб-приложения в облаке Google оно бросает

"NotImplementedError at /myfile/download/8"
 This backend doesn't support absolute paths.
 ...

Cloud storage имеет соответствующий путь к файлу, но он все равно не работает, почему?

Все работает нормально на локальной машине, но не работает на производственной, почему?

Пожалуйста, помогите! Заранее спасибо.

Я думаю, что вызов свойства path() класса FileSystemStorage или свойства url(), где можно получить доступ к содержимому файла, на который ссылаются по имени, а затем использование абсолютных URL для загрузки файлов из любого из этих двух классов - вот что приводит к этой ошибке:

"Для систем хранения, недоступных из локальной файловой системы, вместо этого будет возникать ошибка NotImplementedError."

.

Вы должны стараться избегать сохранения по абсолютным путям; существует API File Storage API, который абстрагирует эти типы операций для вас. Если посмотреть документацию, то окажется, что функция save() поддерживает передачу файлоподобного объекта вместо пути. Также, если вам нужно обслужить загрузку zip файла в Django, вам просто нужно отправить его как вложение, используя HttpResponse:

from django.http.response import HttpResponse 
def zip_file_view(request): 
response = HttpResponse(open('/path/to/your/zipfile.zip', 'rb'), content_type='application/zip') 
response['Content-Disposition'] = 'attachment; filename=any_name_you_like.zip' 
return response
Вернуться на верх