Задать вопрос
alexjet73
@alexjet73

Как проксировать запросы с загрузкой изображений на сервера VK?

В Вконтакте загрузка файлов идёт в три этапа. Получение url на клиенте, отправка файла и урл на сервер, а потом сервер получив данные от ВК отдаёт их клиенту для сохранения. Отправку файлов из клиента делает невозможным cors браузера.
Соответственно хотелось бы сделать проксирование запросов на сервера через nginx, чтобы нагружать сервер по минимуму.
Однако при проксировании нужно удостоверится что url действительно относится к Вк, для этого нужно post переменную с url'ом сверить с списком доменов вк
Домены

<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="vk.com" headers="*"/>
<allow-http-request-headers-from domain="*.vk.com" headers="*"/>
<allow-http-request-headers-from domain="userapi.com" headers="*"/>
<allow-http-request-headers-from domain="*.userapi.com" headers="*"/>
<allow-http-request-headers-from domain="vk.me" headers="*"/>
<allow-http-request-headers-from domain="*.vk.me" headers="*"/>
<allow-http-request-headers-from domain="vkontakte.ru" headers="*"/>
<allow-http-request-headers-from domain="*.vkontakte.ru" headers="*"/>
<allow-http-request-headers-from domain="*.vk-cdn.net" headers="*"/>
<allow-access-from domain="vk.com" to-ports="80"/>
<allow-access-from domain="*.vk.com" to-ports="80"/>
<allow-access-from domain="vk.me" to-ports="80"/>
<allow-access-from domain="*.vk.me" to-ports="80"/>
<allow-access-from domain="userapi.com" to-ports="80"/>
<allow-access-from domain="*.userapi.com" to-ports="80"/>
<allow-access-from domain="vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vk-cdn.net" to-ports="80"/>
<allow-access-from domain="vk.me" to-ports="443"/>
<allow-access-from domain="*.vk.me" to-ports="443"/>
<allow-access-from domain="app.vk.com" to-ports="443"/>
<allow-access-from domain="*.vk-cdn.net" to-ports="443"/>
</cross-domain-policy>


И возможно сделать проверку по секретному ключу.

Вопрос реально ли это реализовать, если да то как? И на сколько решение будет быстрее работать в nginx нежели если бы запрос пропускался через ноду или пхп?
  • Вопрос задан
  • 327 просмотров
Подписаться 3 Средний 11 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия DevOps-инженер
    5 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик буткемп
    4 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы