自分の管理していないサーバ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を返してくる。 image

うーむ

  • AWS LambdaでサーバAから画像をダウンロードして返す
  • これにAPI GatewayでHTTP(S)の口をつける
  • それをCloudFrontで1年くらいキャッシュする とかかな…

pRegroup2020-done