Ни в коем случае. Смотрите на заголовки: сервер отдаёт ETag и Last-Modified, по ним видно, менялся файл или лежит тот же самый.
Порядок такой. При первой загрузке сохраняете рядом с файлом ETag. На следующем прогоне шлёте запрос с заголовком If-None-Match, и если файл не тронут, сервер отвечает кодом триста четыре и пустым телом. Вес такого ответа несколько сотен байт, время миллисекунды. Из восьми тысяч позиций реально меняются десятки, поэтому второй прогон по картинкам идёт минут двадцать вместо часов.
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-H 'If-None-Match: "a3f19c0e-52d1"' \
https://postavshchik.example/img/12345_1.jpg
# 304 0
Второе, про которое спрашивают следом: имена файлов. Не берите имя с сайта поставщика, оно повторяется и перетирается. Собирайте своё из артикула и порядкового номера фотографии, а исходный адрес держите в отдельной колонке. Тогда выгрузка переживает и переезд картинок, и смену их имён у поставщика.
Третье: складывайте не в одну папку. Восемь тысяч позиций по десять фотографий это восемьдесят тысяч файлов, любая файловая система на такой куче начинает тормозить при листинге. Разбивайте по первым символам артикула, получится сотня папок вместо одной.