Skip to content

Commit 9d146ec

Browse files
committed
HTTP model download fix
1 parent df00de9 commit 9d146ec

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

demos/utils/demo_utils.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def download_file(
3838
"""
3939
import tqdm
4040
import requests
41+
import socket
4142

4243
filename = filename or Path(urllib.parse.urlparse(url).path).name
4344
if directory:
@@ -46,7 +47,20 @@ def download_file(
4647
else:
4748
filename = Path(filename)
4849

49-
response = requests.get(url, stream=True, timeout=timeout)
50+
# Work around intermittent WinError 10054 on some Windows networks by
51+
# forcing IPv4 resolution for OMZ storage host.
52+
parsed_url = urllib.parse.urlparse(str(url))
53+
orig_getaddrinfo = socket.getaddrinfo
54+
if parsed_url.hostname == "storage.openvinotoolkit.org":
55+
def _ipv4_only(host, port, family=0, type=0, proto=0, flags=0):
56+
if host == "storage.openvinotoolkit.org":
57+
family = socket.AF_INET
58+
return orig_getaddrinfo(host, port, family, type, proto, flags)
59+
socket.getaddrinfo = _ipv4_only
60+
try:
61+
response = requests.get(url, stream=True, timeout=timeout)
62+
finally:
63+
socket.getaddrinfo = orig_getaddrinfo
5064
response.raise_for_status()
5165

5266
# Download to temporary file

0 commit comments

Comments
 (0)