Я хочу иметь возможность поддерживать кодирование Brotli и Gzip для статических ресурсов, размещенных в Google Cloud Storage.Для этого я хочу закодировать файлы перед их загрузкой как <filename>
, <filename>.gz
и <filename>.br
.Проблема в том, что я не могу найти способ перенаправить запрос с Accept-Encoding
в правильный файл.
Я искал использование:
- Облачные функции для какого-либо перенаправлениявходящие запросы (аналогичные AWS Cloudfront Lambda), но, похоже, он не поддерживается
- Load Balancer для перенаправления запросов в разные сегменты, но, насколько я мог видеть, он может перенаправлять только на основе имени хоста / пути кразличные сегменты
- Облачный CDN, но, похоже, он не обладает какой-либо функциональностью, которая помогает с этим
Примеры запросов / ответов
Предположим, что сегмент example-bucket
содержитследующие файлы:
library.js
library.js.gz
library.js.br
Пример 1
GET http://storage.googleapis.com/example-bucket/library.js
Accept-Encoding: gzip, deflate, br
Content-Encoding: br
<Contents of http://storage.googleapis.com/example-bucket/library.js.br>
Пример 2
GET http://storage.googleapis.com/example-bucket/library.js
Accept-Encoding: gzip, deflate
Content-Encoding: gzip
<Contents of http://storage.googleapis.com/example-bucket/library.js.gz>
Есть ли способ выполнить вышесказанное простым, эффективным и экономически эффективным способом??Я понимаю, что можно просто разместить свой собственный сервер через App Engine, и пусть это позаботится о маршрутизации запросов в корзину, но это единственный способ?