PHP скачать файл из CDN напрямую клиенту - PullRequest
0 голосов
/ 08 сентября 2018

У меня проблема с загрузкой файлов из моего CDN. Я переместил все большие файлы с хостинга на CDN, чтобы сохранить пропускную способность, но функция на PHP работает на сервере, и каждая загрузка все равно учитывает пропускную способность. Это как трафик с CDN -> сервер (хостинг) -> клиент. Есть ли возможное решение пойти прямым CDN -> клиент? Моя функция загрузки:

function download($url) {
 header ("Content-type: octet/stream");
 header ("Content-disposition: attachment; filename=".$url.";");
 header("Content-Length: ".filesize($url));
 file_get_contents($url);
 exit();
}

После применения этой функции в журнале CDN видно, что загрузка осуществляется с IP-адреса сервера (хостинга).

Спасибо за любой совет!

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Итак, через несколько часов я нашел обходной путь:

  1. После нажатия кнопки загрузки я использую функцию AJAX для получения URL-адреса файла с сервера CDN
  2. Затем этот URL-адрес прикрепляется кзагрузить элемент ссылки на странице
  3. Функция jQuery нажимает на эту ссылку (на фоне) - принудительная загрузка
  4. URL-адрес удаляется из элемента с помощью jQuery
0 голосов
/ 08 сентября 2018

Вы не можете напрямую загрузить его из CDN на клиент с маскировкой. Вам необходимо использовать header("Location: http://example.com/file.zip"); для прямой загрузки на клиент, но он покажет клиенту оригинальный URL-адрес CDN.

...