Я пытаюсь выяснить, как я могу проверить, что то, что я подаю в несущую, на самом деле является изображением. Источник, из которого я получаю URL-адреса изображений, не возвращает мне все живые URL-адреса. Некоторых изображений уже нет. К сожалению, на самом деле он не возвращает правильные коды состояния или что-то еще, потому что я использовал некоторый код, чтобы проверить, существует ли удаленный файл, и он прошел эту проверку. Итак, теперь, чтобы быть в безопасности, я хотел бы проверить, что я возвращаю действительный файл изображения, прежде чем я продолжу и загружу его.
Вот код удаленной проверки файлов, который я использовал только для справки, но я бы предпочел что-то, что действительно может определить, что файлы являются изображениями.
require 'open-uri'
require 'net/http'
def remote_file_exists?(url)
url = URI.parse(url)
Net::HTTP.start(url.host, url.port) do |http|
return http.head(url.request_uri).code == "200"
end
end