Enable local cache for /api/thumbnails/{thumbnailId} #707
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why
EPGStation v2.10.0 では、
/api/thumbnails/{thumbnailId}
のレスポンスにはCache-Control
ヘッダが設定されておらず、番組のサムネイルが表示される度にサーバーへリクエストが飛ぶ状態にあります。サムネイルとはいえ著作権保護されたコンテンツの一部なので共有キャッシュへ保存すべきでないのは分かるのですが、EPGStation をブラウザで開いているユーザーのローカルにはキャッシュしても良いのではないでしょうか?
概要(Summary)
/api/thumbnails/{thumbnailId}
のレスポンスにおけるCache-Control
ヘッダにprivate, max-age=14400
を設定し、番組のサムネイルが4時間程度はローカルのキャッシュに保存されるようにします。動作確認
アクセス制限を施した上で Cloudflare の CDN を通じて EPGStation v2.10.0 にアクセスする環境において、
Cache-Control
ヘッダにprivate, max-age=14400
が設定されサムネイルがローカルにキャッシュされることと、Cloudflare の CDN にはキャッシュされていない事を確認しました。ここで、
Cf-Cache-Status
がDYNAMIC
に設定されていますが、これは Cloudflare の CDN がキャッシュ対象と見做していない事を示しています。 cf. https://developers.cloudflare.com/cache/concepts/cache-responses/#dynamic