13

イメージ サービスの前で AWS API Gateway をプロキシとして使用しようとしています。画像を取得することはできますが、Content-Type が「application/json」に設定されているため、ASCII の大きな塊として表示されます。

ソースの Content-Type をまったく変更しないようにゲートウェイに指示する方法はありますか?

「image/jpeg」、「image/png」などを通過させたいだけです。

4

3 に答える 3

5

引用符なしで返される文字列をフォーマットしようとしていて、統合応答機能を発見しました。私はこの修正を自分で試したことはありませんが、次の行に沿った何かが機能するはずです:

  • リソースのメソッド実行ページに移動します。
  • 統合応答をクリックし、
  • メソッド レスポンス ステータス 200 を展開します。
  • マッピング テンプレートを展開し、
  • 「アプリケーション/json」をクリックし、
  • [出力パススルー] の横にある鉛筆をクリックし、
  • 「application/json」を「image/png」に変更

それがうまくいくことを願っています!

于 2015-10-06T03:14:32.300 に答える
4

質問に直接答えず、代わりに別のアプローチを採用することを提案する回答を事前にお詫びします...ただし、質問とコメント、および同様のアプリケーションであると私が信じているものに関する私自身の経験に基づいています、問題に対して間違ったツールを使用しているか、少なくとも AWS エコシステム内で最適な選択ではないツールを使用しているようです。

イメージ サービスが Amazon Lambda 内で実行されている場合、API Gateway の必要性はより明白になります。それがなければ、私はそれを見ません。

Amazon CloudFront は、バックエンド サーバーからのコンテンツのフェッチ、コンテンツのキャッシュ (世界中の 50 を超える「エッジ」ロケーションで) を提供し、キャッシュされたコンテンツのストレージは無料で、単一の Cloudfront を指す最大 100 の個別のホスト名を設定できます。デフォルトのxxxxxxxx.cloudfront.netホスト名に加えて、ディストリビューション。SSLにも対応しています。これはあなたがやろうとしていることのようです。

私はそれを使用していますが、あなたが説明したシナリオ「イメージ サービスの前にあるプロキシ」に対して非常に成功しています。私の画像サービスとあなたの画像サービスが正確に何をするかは異なるかもしれません (私の画像は、要求された画像のソース URL を検索し、フェッチし、サイズ変更することができるリサイザーです) が、基本的には同様の目的を達成しているように見えます.

興味深いことに、一部のリージョン (us-east-1 や us-west-2 など) での CloudFront の料金体系は、費用対効果が高いだけでなく、実際に CloudFront を使用すると、使用しない場合よりもほぼ $0.005 安くなる可能性がありますギガバイトがダウンロードされました。

私の場合、バックエンド イメージ サービスに加えて、1 つのファイルを含む S3 バケットもあり、CloudFront ディストリビューションの 1 つのパスにアタッチされています (2 番目の「カスタム オリジン」として)。を提供し/robots.txt、行儀の良いクローラーによる私の画像への直接アクセスを制御します。これにより、robots.txt ファイルをイメージ サービス自体とは別に管理できます。

これで問題が解決しない場合は、お気軽にコメントしてください。この回答を明確にするか、撤回します。

于 2015-07-25T20:13:32.380 に答える