我在EC2 Ubuntu实例上运行Flask Web服务器。目的是捕获传入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实例上,我在'test.json'文件中得到了一个权限错误(根据apache error.log),导致页面加载时出现500错误。
我已经搜索谷歌和Stackoverflow(Here is a similar question,没有解决方案)无济于事。这看起来像一个简单的问题,但我已经尝试了一切,似乎无法实现它:我已将用户添加到www数据组,我已更改/ var/www文件夹和文件权限到root,ubuntu(默认的EC2 Ubuntu用户)和www-data我能想到的每一个组合,我都直接777目录...似乎没有任何工作。
显然,我有点新手。有没有配置文件或需要调整才能使其工作?
什么是文件'test.json'的绝对路径? –
/var/www/FlaskApps/app/test.json。但是,我在那里创建了该文件,假设Flask将读取/写入该目录。我可能是错的。 –