0

私は弾力のあるbeanstalkで私のサーバーサイドコーディングをホストしました。私はmulterを使って 'upload'フォルダにファイルをアップロードしました。つまり、クライアントはこの 'upload'フォルダに画像やpdfsなどを動的に保存することができます。私がebsで.zipをホストしたとき、アップロードファイルには3つのファイルが保存されていると言えます。また、ホスティング後にさらに多くのファイルが追加されます。コードを変更してコードをebsにデプロイすると、空のアップロードフォルダが作成されます。前のコードをダウンロードした場合、私はホスティングの時点でそこにある3つのファイルだけを取得しています。私はコードがホストされた後に追加されたファイルを取り戻すことができません。これを克服する方法は?AWS Elastic BeanStalkから更新された 'uploads'フォルダを取得するには?

答えて

0

ElasticBeanstalkでアプリケーションをホストする最初のルールは、コードがステートレスでなければならないということです。ステートレスでは、スケーリング要件に応じてインスタンスが作成され、シャットダウンされるため、マシンに依存してはいけないということです。

私がやっていることは、あなたが言うことをすべて実行してアップロードフォルダにアップロードしてから、それをS3(またはインスタンスが終了すると安全な場所)に保存します。したがって、基本的にアップロードフォルダは一時的な場所に過ぎません。

動的に作成されるコンテンツは、コードベースの一部であってはなりません。

新しいバージョンを展開するたびに失われたデータを取得することはできません。コードが展開されたディレクトリが消去され、そこに新しいバージョンがコピーされます。私はその/var/app/current/を信じています。

あなたが将来的にアップロードに対処したいときはいつでも、あなたが従うべき:

  1. それは安全でどこか(AWS S3のような多分何かにそれをアップロードして
  2. 、インスタンス上の一時ディレクトリにそれをアップロード)、
  3. 安全なストレージ(S3リンク)のオブジェクトへのリンクをデータベースに保存して、必要に応じてアップロードを取得できます。
関連する問題