キャンバス汚染
自分の管理していないサーバA上にある画像ファイルを自分の作ってるウェブアプリのCanvasに描いて、かつ編集結果をエクスポートしたい
ところが
CORS による許可なしに他のオリジンから読み込んだ何らかのデータをキャンバスに描画すると、キャンバスは汚染されてしまいます。汚染されたキャンバスは安全とみなされなくなり、そのキャンバスから画像データを取得しようとすると、例外が発生するでしょう。
実際サーバAはこんなヘッダを返してくる
access-control-allow-origin: https://gyazo.com
そこで
自分でプロキシサーバBを立てる
Bにリクエストを投げると、Aにリクエストを投げる
Bはそのレスポンスヘッダに Access-Control-Allow-Origin "*" をつけて返す
ってのを考えた
---以下、過去の考察
このBをAmazon CloudFrontでできないかな、自前で実装しないで手軽に使えるやつがないかな、プロキシするものは画像だけだし、その画像は更新されたりしないので、CDN的なやつでできないかなーという気持ち
CloudFrontでオリジンサーバをAにすると、BにアクセスしてAのコンテンツを得ることはできたが、サーバAが自分のドメイン以外からのアクセスに301 Moved Permanentlyを返してくる。
https://gyazo.com/848d5d2c53bf2b4818bf5567cff101ab
うーむ
AWS LambdaでサーバAから画像をダウンロードして返す
これにAPI GatewayでHTTP(S)の口をつける
それをCloudFrontで1年くらいキャッシュする
とかかな...