Для размещения изображений GitHub Enterprise Cloud использует проект Camo с открытым кодом. Camo создает анонимный прокси URL-адреса для каждого файла, который скрывает сведения о вашем браузере и связанную с ним информацию от других пользователей. URL-адрес начинается с https://<subdomain>.githubusercontent.com/
с разными поддоменами в зависимости от того, как вы загрузили изображение.
Видео также получают анонимные URL-адреса в том же формате, что и URL-адреса изображений, но не обрабатываются через Camo. Это связано с тем, что GitHub не поддерживает видео, размещенные на внешнем хостинге, поэтому анонимный URL-адрес представляет собой ссылку на загруженное видео, размещенное на GitHub.
Любой, кто получит анонимный URL-адрес напрямую или косвенно, может просмотреть изображение или видео. Чтобы конфиденциальные файлы мультимедиа оставались таковыми, ограничьте их использование частной сетью или сервером, требующим проверки подлинности, вместо использования Camo.
Устранение неполадок с Camo
В редких случаях изображения, обработанные через Camo, могут не отображаться на GitHub. Ниже приведены некоторые действия, которые можно выполнить, чтобы определить, в чем проблема.
Пользователям Windows потребуется либо применять Git PowerShell (который устанавливается вместе с GitHub Desktop), либо загрузить curl для Windows.
Изображение не отображается
Если изображение выводится в браузере, но не отображается на GitHub, попробуйте запросить его локально.
-
Откройте ТерминалТерминалGIT Bash.
-
Запрос заголовков изображений с помощью
curl
.$ curl -I https://www.my-server.com/images/some-image.png > HTTP/2 200 > Date: Fri, 06 Jun 2014 07:27:43 GMT > Expires: Sun, 06 Jul 2014 07:27:43 GMT > Content-Type: image/x-png > Server: Google Frontend > Content-Length: 6507
-
Проверьте значение
Content-Type
. В этом случае он выглядит так:image/x-png
. -
Сравните этот тип контента со списком типов, поддерживаемых Camo.
Если тип контента не поддерживается Camo, можно попробовать выполнить несколько действий:
- Если вы являетесь владельцем сервера, на котором размещено изображение, измените его, чтобы он возвращал правильный тип содержимого для изображений.
- Если вы используете внешнюю службу для размещения изображений, обратитесь в ее службу поддержки.
- Создайте запрос на вытягивание в Camo, чтобы добавить тип контента в список.
Изображение, которое было недавно изменено, не обновляется
Если изображение было недавно изменено и оно отображается в браузере, но не на GitHub, можно попробовать сбросить кэш изображения.
-
Откройте ТерминалТерминалGIT Bash.
-
Запрос заголовков изображений с помощью
curl
.$ curl -I https://www.my-server.com/images/some-image.png > HTTP/2 200 > Expires: Fri, 01 Jan 1984 00:00:00 GMT > Content-Type: image/png > Content-Length: 2339 > Server: Jetty(8.y.z-SNAPSHOT)
Проверьте значение Cache-Control
. В этом примере Cache-Control
отсутствует. В этом случае:
- Если вы являетесь владельцем сервера, на котором размещено изображение, измените его так, чтобы он возвращал
Cache-Control
изno-cache
для изображений. - Если вы используете внешнюю службу для размещения изображений, обратитесь в ее службу поддержки.
Если для Cache-Control
установлено значение no-cache
, свяжитесь с или выполните поиск на Обсуждения сообщества GitHub.
Удаление изображения из кэша Camo
Очистка кэша заставляет каждого пользователя GitHub повторно запрашивать изображение, поэтому ее следует применять очень экономно и только в том случае, если описанные выше шаги не сработали.
-
Откройте ТерминалТерминалGIT Bash.
-
Очистите изображение, используя
curl -X PURGE
на URL-адресе Camo.$ curl -X PURGE https://camo.githubusercontent.com/4d04abe0044d94fefcf9af2133223.... > {"status": "ok", "id": "216-8675309-1008701"}
Просмотр изображений в частных сетях
Если изображение передается из частной сети или с сервера, для которого требуется проверка подлинности, оно не может быть просмотрено GitHub. Фактически ни один пользователь не может просмотреть его, не запрашивая вход на сервер.
Чтобы устранить эту проблему, переместите изображение в общедоступную службу.
Дополнительные материалы
- Использование прокси для пользовательских изображений в the GitHub Blog