Вопрос

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

В принципе, я могу загрузить файл .mp3, но он всегда сохраняет chmod 600.

Папка контейнера имеет chmod 775, а для umask установлено значение 022.

Я пользуюсь общим хостингом.

Это было полезно?

Решение

Попробуйте это в вашем settings.py если вы используете Python 2:

FILE_UPLOAD_PERMISSIONS = 0644

В Python 3 восьмеричные числа должны начинаться с 0o, поэтому строка будет выглядеть:

FILE_UPLOAD_PERMISSIONS = 0o644

Для получения более подробной информации смотрите документацию.

Другие советы

Надеюсь, это будет полезно.Можно использовать приведенный ниже метод.Это имеет 2 других преимущества, помимо устранения ошибок разрешения.

  • Нет проблем с правами доступа к файлам
  • Еще быстрее
  • Файл не копируется в папку /tmp/ для файлов размером более 2,5 МБ (также экономится место).

with open(file_name, 'wb+') as temp_file:
    for chunk in up_file.chunks():
        temp_file.write(chunk)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top