私は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
私は地元のフラスコWebサーバインスタンス上でそれを実行し、ポストマンからJSON本体とPOSTを送信すると、それが完璧に動作します。しかし、EC2インスタンスでは、「test.json」ファイルのパーミッションエラー(Apacheのerror.logによる)が発生し、ページロード時に500のエラーが発生します。
GoogleとStackoverflow(解決策なしでHere is a similar question)を無駄にしました。これは簡単な問題のようですが、私はすべてを試してみましたが、うまく動作していないようです。ユーザーをwww-dataグループに追加しました。/ var/wwwフォルダとファイルのアクセス権を変更しましたroot、ubuntu(デフォルトのEC2 Ubuntuユーザー)と私が考えることができるwwwデータのすべての組み合わせに、私はまっすぐ777のディレクトリを持っています...何も動作していないようです。
明らかに、私は少し初心者です。これを動作させるには設定ファイルなどが必要ですか?
ファイル 'test.json'の絶対パスは何ですか? –
/var/www/FlaskApps/app/test.jsonしかし、Flaskがそのディレクトリに読み書きすると仮定して、そのファイルを作成しました。私は間違っている可能性がある。 –