RestClient.get очень медленно загружает небольшой файл

Я пытаюсь загрузить небольшой zip-файл, а библиотека Ruby RestClient очень медленная. Загрузка через браузер занимает <1сек. Но Руби требует минут.

Почему это может быть так?

Пример:

require 'rest-client'

RestClient.get("http://prd-enforce-xfr-02.dol.gov/data_catalog/OSHA/osha_accident_abstract_20161013.csv.zip")

ruby,rest-client,

0

Ответов: 1


0

Я думаю, что у сервера есть сломанная запись IPAA AAAA.

prd-enforce-xfr-02.dol.gov has address 63.106.133.229
prd-enforce-xfr-02.dol.gov has IPv6 address 2607:f250:d008:2029:63:106:133:129

Я не могу подключиться к серверу по всему IPv6. Загрузка с помощью wget возвращается к IPv4 после таймаута.

$ wget --timeout=20 http://prd-enforce-xfr-02.dol.gov/data_catalog/OSHA/osha_accident_abstract_20161019.csv.zip
--2016-10-19 22:40:24--  http://prd-enforce-xfr-02.dol.gov/data_catalog/OSHA/osha_accident_abstract_20161019.csv.zip
Resolving prd-enforce-xfr-02.dol.gov (prd-enforce-xfr-02.dol.gov)... 2607:f250:d008:2029:63:106:133:129, 63.106.133.229
Connecting to prd-enforce-xfr-02.dol.gov (prd-enforce-xfr-02.dol.gov)|2607:f250:d008:2029:63:106:133:129|:80... failed: Connection timed out.
Connecting to prd-enforce-xfr-02.dol.gov (prd-enforce-xfr-02.dol.gov)|63.106.133.229|:80... connected.
HTTP request sent, awaiting response... 200 OK

Под капотом в rest-client Ruby Net :: HTTP, вероятно, делает подобный тайм-аут. Я полагаю, что браузеры гораздо умнее, чем делать быстрый резерв. К сожалению, я не уверен, что в rest-client есть способ отключить IPv6.

С помощью raw Net :: HTTP вы можете установить local_hostлокальный адрес IPv4, чтобы принудительно использовать IPv4.

рубин, остальное-клиент,
Похожие вопросы