Быстрый способ проверить наличие изображений на удаленном сервере - PullRequest
0 голосов
/ 24 июня 2010

У меня есть сайт, который загружает изображения из CDN. У меня есть требование проверить наличие сотен изображений в CDN.

Я использую этот код для достижения этой цели:

Protected Function RemoteImageExists(ByVal Path As String) As Boolean

    Dim httpRequest As HttpWebRequest = CType(WebRequest.Create(Path), HttpWebRequest)

    httpRequest.Method = "HEAD"

    Try

        Dim httpResponse As HttpWebResponse = CType(httpRequest.GetResponse, HttpWebResponse)

    Catch ex As Exception
        Return False 'Undesirable flow, but seems unavoidable :(
    End Try

    Return True

End Function

Это все еще очень медленно, и время ожидания многих запросов. Есть ли более быстрый способ сделать это?

1 Ответ

0 голосов
/ 24 июня 2010

Несколько предложений:

  1. Если CDN может обслуживать динамический контент, размещение службы на CDN, которая доставит список изображений, будет лучшим подходом с точки зрения производительности.

  2. Изображения находятся в одном каталоге?Если да, настройте CDN, чтобы показать список доступных файлов, и запросите этот список.Разбор HTML - уродливая вещь, но поскольку формат этих файлов HTML не изменится неожиданно за один день, это может быть приемлемо.* расширения в зависимости от обстоятельств (это может сделать вещи быстрее или медленнее).

  3. Исключения являются медленными.Избавься от них.Непосредственное использование сокетов может помочь (даже если это некрасиво).

Кстати, поиск узкого места может помочь найти лучшее решение.Например, если узким местом является мощность процессора, параллельные расширения могут помочь, но если это пропускная способность или производительность CDN, это просто замедлит все.Обратите внимание, что узким местом может быть локальный компьютер, локальное подключение, общее подключение или CDN.

...