Не удается создать файл внутри Python на Amazon ElasticBeanstalk

Я пытаюсь создать файл внутри проекта 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'

Заранее спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
776
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы хотите создать файл на 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"

Собственно, я уже использую S3 в качестве хранилища по умолчанию. Но мне нужно обработать некоторые видео и извлечь некоторые кадры из этих видео, поэтому мне нужно было создать несколько локальных файлов. В любом случае, я решил использовать Worker для выполнения этих операций. Спасибо!

cengineer 19.03.2018 19:40

С другой стороны, это тоже не решило мою проблему: / Но все равно спасибо @Aurelien

cengineer 19.03.2018 19:40

Я предлагаю вам создать папку в вашем приложении именно для этого. Чем вы можете 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.

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