2016-10-02 3 views
0

私は以前のウェブサイトをAWSに移しました。AWS Elastic Beanstalk。ユーザーがアップロードしたファイルを保存する場所はどこですか?

私はすでにいくつかの資産を作っています: - 私のウェブサイトは私のドメインの下に現れます。 - 私のSQLデータベースはオンラインで、ローカルマシンからアクセスできます。 - Linux AMIインスタンスとElastic Beanstalk php環境を起動して、PHPアプリケーションを実行しました。これも動作します。

今、私のPHPアプリケーションは、(JavaScriptとPHPスクリプトによって)私のウェブサイトの訪問者がアップロードしたいくつかの画像ファイルを読み書きすることがあります。

私の古いウェブホスティングでは簡単でした。 PHPスクリプトは、自分のhttpドメインからアクセス可能な特定のディレクトリ内にユーザーのイメージファイルを読み書きしました。

AWSでは、Elasticbeanstalk Linuxバケットのルートに画像ファイルを手動でアップロードしようとしました(ここで私のPHPアプリケーションのzipファイルが見つかりました)。 "usersimages/image.png"ですが、http://example.com/usersimages/image.pngと入力すると404エラーが表示されます。

したがって、すべてが不透明なPHPアプリケーション内でのみ動作し、外部では動作しません。私はこれらのユーザーのファイルをphp zipファイルに含めることはできません。ディレクトリ "usersimages"には、私のPHPアプリケーションから独立した動的データが含まれています。

私の質問は次のとおりです。ユーザーのイメージファイルをどこに読み書きするのですか?

答えて

1

ユーザーの画像をS3に直接アップロードするのが最善の方法でしょう。こうすることで、Beanstalkのインスタンスから外して、簡単にページにイメージを含めることができます。アップロードは、pre-signed upload URLsというメソッドを使用して行われます。 PHPで事前署名されたURLを作成し、HTMLフォームのURLを使用してファイルをアップロードすることができます。例はClient side uploads to s3, with pre-signed upload form (PHP/JS)です。

+0

事前署名されたアップロードURLと呼ばれるメソッドをローカルでテストできますか?また、私はプロジェクト全体を圧縮し、アップロード/展開する必要がありますすべての時間ですか?リモートサーバー上のPHPファイルを編集するにはどうすればよいですか?私の現在のホスティングでは、私は編集するために使用する/送信するリモートPHPファイルを保存します。私は結果を数秒で見ることができます。ここで私は決して終わらないでしょう。 – Leonardo

+0

私はあなたが言ったように問題を解決しました。ありがとうございました。ダイナミックファイルを新しいS3バケットに移動しました。 AWSメソッドs3:// bucketNameを使用してこれらのパブリックURLをポイントする方法を見つけました – Leonardo

関連する問題