Django обрабатывает файлы, загруженные пользователем
Я работаю над приложением, в котором пользователь загружает текстовый файл, который затем обрабатывается.
Все работает хорошо в моей локальной среде, но на Heroku приложение не может найти файл в указанном месте.
- User uploads file through form & I save it to a folder in the media root:
# views.py
myfile = request.FILES['myfile']
fs = FileSystemStorage(location=os.path.join(settings.BASE_DIR, 'media/raw'))
filename = fs.save(myfile.name, myfile)
- I try to open the file and perform some operations on it
# 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')
Спасибо за любую помощь!