我在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將讀取/寫入該目錄。我可能是錯的。 –