Я запускаю веб-сервер 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
Когда я запускаю его на локальном экземпляре Колба веб-сервер и отправить POST с JSon тела от Почтальон, он отлично работает. Но в экземпляре EC2 я получаю ошибку разрешений (согласно apache error.log) в файле test.json, что приводит к ошибке 500 при загрузке страницы.
Я искал Google и Stackoverflow (Here is a similar question, без решения) безрезультатно. Это похоже на легкую проблему, но я все пробовал и не могу заставить ее работать: я добавил своего пользователя в группу www-data, я изменил права на файлы/var/www и права на файлы для каждой комбинации корня, ubuntu (пользователь EC2 Ubuntu по умолчанию) и www-данных, о которых я мог думать, у меня есть прямые каталоги ... ничего не работает.
Очевидно, что я немного новичок. Есть ли файл конфигурации или что-то, что требует настройки, чтобы заставить это работать?
Что абсолютный путь к файлу 'test.json'? –
/var/www/FlaskApps/app/test.json. Однако я создал этот файл там, предполагая, что Flask будет читать/записывать в этот каталог. Я могу ошибаться. –