@borisalekseev
extra beginner junior python backend

Как организовать управление файлами?

Задача: загружаемые в приложение файлы хранить на сервере с виндой.
Моё решение: разворачивание фтп сервера на машине с виндой, с помощью расширения django-storages (чтобы не писать свой класс FTPStorage) привязать в моделях поля файлов к новому хранилищу.
Методы Model.filefield.save и Model.filefield.open работают так, как мне надо. Но в админке поднимает ошибку при попытке скачивания (что и требовалось ожидать, но я не пойму в каком месте мне нужно влезть в джангу, чтобы объяснить ему брать файл по ftp в память и уже отправлять юзеру по http).
Заранее говорю, касательно безопасности комментарии не интересуют, облачные сервисы тоже не рассматриваю.
Код:
# settings
DEFAULT_FILE_STORAGE = "storages.backends.ftp.FTPStorage"
FTP_STORAGE_LOCATION = f'ftp://{FTP_USER}:{FTP_PASSWORD}@{FTP_HOST}:21/'

# model
from storages.backends.ftp import FTPStorage
storage = FTPStorage()
class MyModel(Model):
    f = FileField(storage=storage)

Ошибка:
“/home/../app/asda.xlsx” не существует 404
Как настроить админку так, чтобы можно было скачать файлы? Как работать с самим сайтом? Написать отдельные вьюхи для скачивания файлов? Уверен, что есть варианты лучше.
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы