2016-03-04 2 views
0

Так что моя компания хранит все файлы PDF в Amazon S3 в частном порядке. Когда запрос пользователя это наша система вытащить его из Amazon S3, а затем служить его пользователю с помощью следующего кода:Случайная медленная скорость загрузки с PHP и Apache

header("Cache-Control: public"); 
header("Pragma: public"); 
header("Expires: 0"); 
header("Content-Description: File Transfer"); 
header('Content-Disposition: attachment; filename="'.$fileName.'"'); 
header('Content-Length: ' . strlen($res->body)); 
header("Content-type: application/pdf"); 
header("Content-Transfer-Encoding: binary"); 
header('Connection: close'); 
echo $res->body; 

$ УЭ Реагировать вернулся из Амазонии с содержанием от $res->body;

я вижу случайная медленная скорость загрузки, когда пользователь пытается загрузить PDF-файлы, особенно когда PDF-файл большой (~ 5 Мб) по сравнению с остальным, который имеет только 800kb-1.5mb.

Решение принято: 1) Удаление заголовка содержимого не помогает. 2) Удалить EnableSendfile в httpd.conf тоже не помогает.

Я также проверил сервер, чтобы убедиться, что это не является причиной нагрузки на сервер. Проверка скорости как на сервере, так и на рабочей станции пользователя тоже выглядит неплохо.

Неужели кто-нибудь из вас знает, в чем причина того, что вызывает эту медлительность?

+0

Каков ваш * точный вопрос? –

+0

Кажется, это не проблема программирования. (Если вы не дадите какой-либо подсказки, что это может быть) – m02ph3u5

+0

Извините, только что обновил мою тему, я просто хочу узнать, в чем проблема этой случайной медленности при загрузке. –

ответ

0

Возможно, несколько человек из вашей компании пользуются Интернетом. Вы должны выполнить полное сканирование сети, но тем не менее, ваши не только в Интернете, но и в их «виртуальных» серверных средах.

+0

Я попросил системного администратора сканировать сеть раньше, но мне сказали, что сеть работает нормально и реже - причина. –

+0

уверен, что это прекрасно, с его точки зрения, но что действительно произошло в этот момент?. В нашей сети я вижу, что иногда скорость падает, когда появляются некоторые люди, и их dropbox начинает синхронизироваться, и это только в небольшой компании. Представьте себе такие вещи в крупных компаниях, сеть всегда ведет себя динамично. – user3800527

0

Из моего понимания проблема заключается в том, что просто требуется время для извлечения файла из S3, чтобы вернуть его пользователю.

Сделайте себе одолжение:

  1. создать signed url в течение короткого периода времени
  2. перенаправить пользователя на такой URL

не переживайте, как создание подписанных URL-адресов не предоставляет какой-либо личная информация, которая подрывает вашу безопасность (если вы делаете правильно)

+0

Я делаю тест и выясняю, сколько времени требуется для нашей системы для извлечения файла из S3, и похоже, что это не причина этого. Идея подписанного URL также пересекла мою мысль, но я действительно хочу узнать, в чем причина этого, прежде чем сделать это. –

+0

Я понимаю, но я так думаю, вы также можете уменьшить сложность. –

Смежные вопросы