Поддерживает ли S3 конвейерную обработку HTTP?

У меня есть тысячи небольших файлов (около 1 КБ) для загрузки в S3 каждую минуту. Если я загружаю каждые файл в цикле "отправить мой HTTP-запрос - дождаться HTTP-ответа S3 - отправить следующий запрос - дождаться следующего ответа ...", это требует много времени, потому что мне приходится ждать 2 раза задержка между S3 и моим сервером. Конечно, я уже использую HTTP-заголовок Keep-Alive.

Поэтому я пытаюсь отправить несколько HTTP-запросов, не дожидаясь соответствующего (конвейерная обработка HTTP). Я пытаюсь отправить 20 запросов в пакете и дождитесь ответа 20. Я ожидал, что это может сэкономить много времени, потому что я все еще могу отправлять запрос, когда предыдущий ответ уже в пути.

Однако это не делает мир лучше.

Я отправляю свои 20 запросов примерно за 200 мс, затем я пробую чтобы получить ответ. Я ожидал, что получу ответ так же быстро, как отправлю запросы после получения первого ответа, например на этой диаграмме .

Дело в том, что после того, как я получил первый ответ, я должен ждать около 300 мсек для каждого ответа. Нет ничего лучше, чем отправить один запрос и получить один ответ.

Почему я не могу сократить время на конвейерную обработку? Почему S3 требует так много времени на каждый запрос? Поддерживает ли S3 конвейерную обработку HTTP?

Спасибо.

6
задан Michel Feldheim 8 January 2013 в 00:57
поделиться