Django: Где лучше всего хранить загруженный файл (pdfs, docs), которым пользователь делится в проекте django? - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время я работаю над проектом Django по созданию сайта для обмена файлами. Я знаю, что Django модели не могут сохранить файл в своих полях и сохранить только строку, которая к нему относится, и файл сохраняется в любой папке, которую я установил в настройке MEDIA_ ROOT, что, на мой взгляд, не очень безопасно и эффективный. Так где же хранить эти загруженные файлы? Или это достаточно безопасно, чтобы хранить его в папке, установленной MEDIA_ ROOT?

Я не могу дать никакого прогресса сейчас, так как это все еще все в моей голове, и я тоже искал, и ответ нигде не может быть найдено (или, может быть, я не пытался достаточно).

Так, какова лучшая практика для хранения этих файлов?

1 Ответ

0 голосов
/ 24 февраля 2020

С уважением к MEDIA_ROOT, его можно использовать, и вы можете повысить безопасность, если необходимо, изменив представления / URL-адреса. Однако в производственной среде обычно мультимедийные файлы обслуживаются в облаке, и для управления этими файлами необходимо написать собственные переменные.

Вы можете выбрать различные варианты, лично я использую Amazon S3, где вы можете открыть корзину и храните все свои файлы там. Когда файлы загружаются, они хранятся там, и внутри вашей модели вы сохраняете путь внутри корзины, а когда вы хотите загрузить ее, вы получаете свою корзину root (то есть www.amazon.com/s3/whatever) + путь, который вы храните внутри вашей базы данных.

Таким образом, вместо использования MEDIA_ROOT, вы используете что-то вроде AWS_PRIVATE_ROOT или AWS_PUBLIC_ROOT и управляете файлами там. С учетом всего вышесказанного весь процесс относительно похож, найдите место для хранения файлов, сохраните их, добавьте ссылки на файл на своем веб-сайте позже.

Желаем удачи, надеюсь, это помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...