Я пытаюсь создать файл внутри проекта Django в среде Amazon ElasticBeanstalk WebServer Environment. Однако это дает мне ошибку Permission Denied.
Вот ошибка.
Traceback (most recent call last):
File "/opt/python/current/app/foo/boo.py", line 25, in create_file
input_file = open(input_filename, "w")
IOError: [Errno 13] Permission denied: 'testing.txt'
Заранее спасибо!






Если вы хотите создать файл на ElasticBeanstalk, вы можете, но не должны, вы должны использовать для этого службу amazon S3 с boto3.
Но если это просто для теста, вы можете добавить разрешение с помощью файла .ebextensions:
.ebextensions / instance.config
container_commands:
# Permisson on deploy command
0.0.0.files.chmod.ondeck:
command: "chmod u+xwr -R /opt/python/ondeck/app"
# Permisson on run dir
0.0.1.files.chmod.run:
command: "chmod u+xwr -R /opt/python/current/app"
С другой стороны, это тоже не решило мою проблему: / Но все равно спасибо @Aurelien
Я предлагаю вам создать папку в вашем приложении именно для этого. Чем вы можете XX_permissions.config в папке .ebextensions.
container_commands:
01_change_my_folder_permissions:
command: "mkdir -p /opt/python/current/app/my_folder; chmod 777 -R /opt/python/current/app/my_folder"
Команда создает папку, если ее не существует, и устанавливает разрешения. Просто убедитесь, что у вашего экземпляра есть необходимые разрешения для прямого подключения с помощью ssh. Запустите eb ssh [name-of-your-env] и проверьте, в порядке ли разрешение:
ls -l /opt/python/current/app/
Вы должны увидеть в списке свою папку с таким разрешением, как drwxrwxrwx.
Собственно, я уже использую S3 в качестве хранилища по умолчанию. Но мне нужно обработать некоторые видео и извлечь некоторые кадры из этих видео, поэтому мне нужно было создать несколько локальных файлов. В любом случае, я решил использовать
Workerдля выполнения этих операций. Спасибо!