Это загружает изображение на диск:
image = open permalink_url, "rb", &:read
...
File.binwrite "images/#{hash}", image
Иногда он приходит поврежденным:
при этом не было исключений.
- Как проверить правильность загрузки образа (в противном случае повторить процедуру)?
- Насколько это нормально, что не было исключения? Как это произошло? Было ли отключено сетевое исключение на каком-то промежуточном сервере?
UPD: Imagemagick говорит, что identify
"сообщает, если изображение неполное или повреждено", но это не так нет:
$ identify temp.png
temp.png PNG 1080x1080 1080x1080+0+0 8-bit sRGB 2.126MB 0.000u 0:00.049
Вот два поврежденных изображения:
- https://drive.google.com/file/d/0B3BLwu7Vb2U-MnNqdHV4MzFSX2s/view?usp=sharing
- https://drive.google.com/file/d/0B3BLwu7Vb2U-d3Fab2lmT1hvZlE/view?usp=sharing
UPD: Я повторно скачал изображение и провел некоторый анализ — плохой вариант имеет лишние 300000 байт где-то посередине, разбитые на множество частей. Мусор не просто 0x00, а выглядит случайным.