Файлы процесса Django, загруженные пользователем

#django #django-media

Вопрос:

Я работаю над приложением, в котором пользователь загружает текстовый файл, который затем обрабатывается.

Все хорошо работает в моей локальной среде, но на Heroku приложение не может найти файл в указанном месте.

  1. Пользователь загружает файл через форму, и я сохраняю его в папку в корневом каталоге носителя:
 # views.py
myfile = request.FILES['myfile']

fs = FileSystemStorage(location=os.path.join(settings.BASE_DIR, 'media/raw'))
filename = fs.save(myfile.name, myfile)
 
  1. Я пытаюсь открыть файл и выполнить с ним некоторые операции
 # another file
class Text:

    def __init__(self, filename):
        self.filename = filename
        self.raw_path = os.path.join(settings.MEDIA_ROOT, f'raw/{self.filename}')
        ...
        with open(self.raw_path) as file:
            ...
 

На производстве я получаю сообщение об ошибке

No such file or directory: '/app/media/raw/filename.txt'

Я знаю, что Django обрабатывает медиафайлы немного по-другому в производстве, но я не понял, как решить эту проблему.

В моем settings.py у меня есть:

 MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
 

Спасибо за любую помощь!