Разрешения для флагов для записи файлов

Я запускаю веб-сервер Flask на экземпляре EC2 Ubuntu. Цель состоит в том, чтобы захватить тело входящего POST, записать его в файл локально, а затем загрузить этот файл на S3.

Код, в основном:

@app.route('/', methods=['GET','POST']) @app.route('/index.html', methods=['GET','POST']) def index_home(): data = request.data with open('test.json', 'w') as f: f.write(data) ## Upload the stuff to S3 

Когда я запускаю его на локальном веб-сервере Flask и отправляю POST с помощью json body из Postman, он работает отлично. Но в экземпляре EC2 я получаю ошибку разрешений (согласно apache error.log) в файле test.json, что приводит к ошибке 500 при загрузке страницы.

Я просмотрел Google и Stackoverflow ( вот аналогичный вопрос , без решения) безрезультатно. Это похоже на легкую проблему, но я все пробовал и не могу заставить ее работать: я добавил своего пользователя в группу www-data, я изменил права на файлы / var / www и права на файлы для каждой комбинации корня, ubuntu (пользователь EC2 Ubuntu по умолчанию) и www-данных, о которых я мог думать, у меня есть прямые каталоги … ничего не работает.

Очевидно, я немного новичок. Есть ли файл конфигурации или что-то, что требует настройки, чтобы заставить это работать?

One Solution collect form web for “Разрешения для флагов для записи файлов”

Вы должны убедиться, что программа на самом деле пытается записать в каталог, в который вы хотите его записать. Возможно, он пытается записать в каталог двоичного кода Python (или что-то еще), что зависит от вашей команды и текущего рабочего каталога. В целях тестирования вы можете попытаться изменить путь таким образом (убедитесь, что / tmp является возможностью записи для пользователя, что должно быть так):

 with open('/tmp/test.json', 'w') as f: f.write(data) 
  • Отсутствует модуль zlib
  • uWSGI, ImportError: Нет модуля с именем site на Ubuntu
  • ImportError: нет модуля с именем redis
  • Ubuntu с запуском `pip install` дает ошибку 'Невозможно построить следующие необходимые пакеты: * freetype'
  • Почему для установки numpy требуется python-dev в Kubuntu 12.04
  • Как заставить команду python3 запускать Python 3.6 вместо 3.5?
  • Системный лоток Ubuntu в Python
  • OperationalError: попытка написать базу данных только для чтения на сервере ubuntu
  • Как установить / исправить неудачную установку numpy, которая работает на python 3.4, но не в 3.5?
  • ImportError: ни один модуль с именем bottle
  • В результате Ubuntu 14.4 после обновления пакета
  • Python - лучший язык программирования в мире.