Использование другой кодировки содержимого для облачного хранилища - PullRequest
0 голосов
/ 29 марта 2019

Я хочу иметь возможность поддерживать кодирование 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, и пусть это позаботится о маршрутизации запросов в корзину, но это единственный способ?

1 Ответ

0 голосов
/ 30 марта 2019

Lambda @ edge - это способ сделать это, но простой способ состоит в том, чтобы внести в белый список заголовок Accept-кодировки в CloudFront, чтобы CloudFront мог передать его в Origin, и вы можете иметь конфигурацию в Origin для обслуживания файла на основе кодировки Acceptheader.

Если вы планируете использовать Lambda @ edge, я бы предложил использовать функцию запроса Origin.1. Белый список заголовка Accept-encoding. 2. Функция запроса «Начало» для считывания значения заголовка и изменения пути URI запроса.

...