Я разрабатываю и создаю веб-приложение, в которое пользователи будут загружать статический файл шаблона HTML.Моя система проанализирует их шаблон и создаст код JavaScript для своих индивидуальных целей.
Я хочу, чтобы каждое использование имело свое собственное пространство имен, поэтому в идеале конечные точки должны выглядеть примерно так:
user1.domain.com/index.html
user1.domain.com/code.js
user2.domain.com
user2.domain.com/code.js
...
Этоневозможно программно записать статические файлы на хостинг Firebase, поэтому я предусмотрел облачную функцию, которая будет проверять HTTP-хост и обслуживать соответствующие файлы.Файл шаблона index.html
пользователя 1 будет храниться в Firebase Storage в его собственном подпространстве, а пользователь 2 - аналогичным образом.
Конечной целью является получение www.userone.com
и www.usertwo.com
(мои клиенты выбралидоменов) сопоставлены с user1.domain.com
и user2.domain.com
соответственно, но я мог бы добиться этого, используя запросы на проксирование внешних CDN.
Для того чтобы вышеуказанное решение работало, мне нужно было вручную добавить домены в мой проект Firebase.(используя панель управления Firebase), поскольку каждый пользователь участвует в моем приложении.Я ожидал, что около 200 клиентов.
Я мог бы использовать staging.domain.com/user-{n}
, и тогда мне нужно было бы только настроить один домен для моего проекта Firebase.Однако это вынудит пользователей использовать относительные ссылки на их содержимое в своем шаблоне.Кроме того, они будут иметь доступ к контенту других пользователей, то есть user-1/index.html
может получить доступ к ../user-2/code.js
, что не представляет угрозы безопасности, но допускает более склонные к ошибкам идиотизмы от пользователей.
Есть ли способ настроить хостинг длясопоставить *.domain.com
с одной облачной функцией или, по крайней мере, user1.domain.com
, user2...
вручную?
Если нет, можно ли реализовать описанный выше сценарий с помощью облачной инфраструктуры Google?(Меня беспокоит, что существует недокументированное ограничение на количество доменов, которые могут быть присоединены к одному проекту.)