私はS3に画像を保存しました。サーブレットを使用してamazon s3に保存された画像をウェブブラウザで表示
私が持っているもの -
画像を含む入力ストリーム。
私は何をしたいですか?
この入力ストリームをイメージに変換できるサーブレットを設計します。
助けてください。私はこのすべてに新しいです。
私はS3に画像を保存しました。サーブレットを使用してamazon s3に保存された画像をウェブブラウザで表示
私が持っているもの -
画像を含む入力ストリーム。
私は何をしたいですか?
この入力ストリームをイメージに変換できるサーブレットを設計します。
助けてください。私はこのすべてに新しいです。
サーブレットは、ServletResponse
インスタンスのresponse
というインスタンスを受け取ります。このインスタンスはgetOutputStream
メソッドを持ちます。 setContentType
を使用して、イメージデータに応じて応答のコンテンツタイプを設定し、getOutputStream
を使用して出力ストリームを取得し、入力ストリームからループを読み取り、出力ストリームに書き込みます。
あなたがやっていることに合っていれば、HTMLのimg
タグをs3のイメージに直接持ち込んで、サーバー全体に流さないようにすることができます。もちろん、イメージは外部から到達可能であれば問題ありません。 「s3 serve image」を検索した場合、これを行うことに関するさまざまな記事(SOのJeff Atwoodによるものを含む)が見つかるでしょう。ここではリンク先をランダムに選択しません。
最も簡単なことは、S3 URLを直接使用することです。彼らは形式である公共のファイルについては
:
http://s3.amazonaws.com/[bucket]/[key]
しかし、@T.J.は彼の答えで指摘するように、これらの画像は、外部から見えるようになります。
ただし、あなたのコンテンツをprivateにすることができます。そのため、標準のURLで到達できないように、signed, expiring urlを介してのみアクセスしてください。 java AWS SDKはこれらを簡単に作成します。