HTML レポートを生成するアプリケーションを Google AppEngine (Java) で開発しています。レポートは頻繁に表示され、時々変更されます。レポートを生成して Google Cloud Storage にアップロードし、AppEngine の代わりにレポートを提供するようにスケジュールすることで、パフォーマンスを最適化することを考えています。したがって、userA と userB はレポートを作成し、userA-report.myapp.com と userB-report.myapp.com からアクセスできます。コンテンツは AppEngine で生成され、Cloud Storage に保存されます。
ただし、いくつかの制約があります。 - 一部のレポートにはアクセス制限がありましたが、アプリケーションで引き続き制御したいと考えています。つまり、ACL を使用して、アクセスを制限するためにそれを維持したくありません。- CNAME エントリを動的に構成する方法がありません。そのため、AppEngine でリクエストを処理し、Cloud Storage にリダイレクトする必要があります。
私にできることは、レポートが Cloud Storage で既に利用可能であることを検出した場合、HTTP 3XX リダイレクトをhttp://storage.googleapis.comに送信することだと考えています。別の旅行ですが、ページを再度生成するよりも高速なはずです。必要に応じて認証も処理できます。
上記のパフォーマンスに関する懸念に加えて、これは、最初にコンテンツ サーバーに移動し、次に CDN にリダイレクトするという「後ろ向き」に聞こえます。ファイルが見つからず、別のサーバーにヒットした場合に Cloud Storage で構成する方法はありますか? または、私のアプローチは完全に無意味ですか?