Ссылки

Публичная ссылка

Публичная ссылка указывает на определенный путь в хранилище. Например, если в хранилище файл расположен по пути /my/file, он будет доступен по ссылке http://cdnuser.cdn.zerocdn.com/my/file.

  • При переименовании файла в "/my/file2" или перемещении, будет утерян доступ к нему по старой ссылке, и актуальной ссылкой станет "http://cdnuser.cdn.zerocdn.com/my/file2".
  • Если в хранилише будет загружен другой файл с именем "/my/file", по ссылке "http://cdnuser.cdn.zerocdn.com/my/file" будет доступно содержимое нового файла.

Прямая ссылка

Прямая ссылка - это ссылка, указывающая на файл, независимо от его расположения в храналище и названия.

Если файл сохранен по пути "/my/file", прямая ссылка на него может выглядеть как "http://cdn.zerocdn.com/0/file". При его переименовании или переносе в другую папку он все еще будет доступен по ссылке "http://cdn.zerocdn.com/0/file".

Подписывание ссылок

ZeroCDN предоставляет возможность ограничения доступа к файлам по ip и по времени или по cookie и времени (только для публичных ссылок). Для осуществления этого нужно:

  • ограничить доступ к файлу:
    • задать для файла параметр «is_hidden» через REST API;
    • или опцию «Доступен только по подписанной ссылке» в свойствах файла в web-интерфейсе.
  • сгенерировать для пользователя подписанную ссылку.

Внимание! Время указывается в UTC+00:00.

Внимание! Для генерации ссылок нельзя использовать urlencoded путь к файлу.

Внимание! Для генерации ссылок на файлы с именами, содержащими символы, отличные от латинских, путь к файлу должен быть переведен в utf-8 с помощью функции utf8_encode().

Внимание! На авторизованных пользователей-владелецев файла данное ограничение не распространяется. Для них файл доступен как по неподписанной публичной ссылке, так и по подписанной неправильно.

Так как ZeroCDN.com поддерживает два вида ссылок, механизм геренации подписей для них отличается.

Подписывание публичных ссылок

Подпись публичной ссылки генерируется на основе:

  • пути к файлу,
  • ip или cookie пользователя, которому выдается ссылка (ip или cookie указывать не обязательно, в случае их отсуствия значение не проверяется),
  • времени окончания действия ссылки (UTC+00:00 в формате YYYYMMDDHH),
  • api-ключа (api-ключ можно посмотреть и задать в настройках в web-интерфейсе пользователя).

Ограничение по времени и ip

ЗначениеФорматПример
ссылка[username].cdn.zerocdn.com/[подпись]:[deadline]/[path_to_file] username.cdn.zerocdn.com/2c99cd801aebec2b63233323495722ae:1983122408/my/file.mp4
подписьmd5([path_to_file]-[ip]-[deadline]-[secret])md5('/my/file.mp4-127.0.0.1-1983122408-password') = 2c99cd801aebec2b63233323495722ae
deadlineYYYYMMDDHH2013122410

Ограничение по времени и cookie-ключу

Позволяет сгенерировать ссылку, привязанную к конкретному пользователю, независимо от его IP.

При генерации ссылки необходимо установить уникальное значение cookie, которое будет проверяться на строне CDN.

В качестве названия cookie-ключа используется строка формата "[domain_name]-UID".

В качестве содержимого допускается использование любого значения: от id пользователя в системе клиента до уникальной последовательности символов UID.

Значение cookie-ключа используется вместо IP при генерации и валидации подписи.

Время жизни cookie-ключа не должно быть меньше времени жизни ссылки.

ЗначениеФорматПример
Название cookie[домен]-UID username-domain.com-UID
ссылка[домен]/[подпись]:[deadline]/[path_to_file] username-domain.com/14ffa7bc046f16e3c6c1b2a5459ee918:1983122408/my/file.mp4
подписьmd5([path_to_file]-[cookie-value]-[deadline]-[secret])md5('/my/file.mp4-c980d2b6-4ddb-4b35-8172-56ec427d2e75-1983122408-password') = 14ffa7bc046f16e3c6c1b2a5459ee918
deadlineYYYYMMDDHH2013122410

Внимание! Данная функция работает только в случае подключения White Label (делегирование пользовательского домена на сервера CDN).

Ограничение по времени

ЗначениеФорматПример
ссылка[username].cdn.zerocdn.com/[подпись]:[deadline]/[path_to_file] username.cdn.zerocdn.com/4df70de26df93014d8c13962c88dee9c:1983122408/my/file.mp4
подписьmd5([path_to_file]--[deadline]-[secret])md5('/my/file.mp4--1983122408-password') = 4df70de26df93014d8c13962c88dee9c
deadlineYYYYMMDDHH2013122410

Ограничение по каталогу

ZeroCDN.com предоставляет возможность ограничения доступа не только к отдельному файлу, но и ко всем файлам в определенном каталоге сразу. Данная возможность может быть использована, например, для HLS.

Ограничение по каталогу можно использовать совместно с ограничением по cookie или по ip.

ЗначениеФорматПример
ссылка[username].cdn.zerocdn.com/[path]/[подпись]:[deadline]/[path_to_file] username.cdn.zerocdn.com/video/4df70de26df93014d8c13962c88dee9c:1983122408/file.mp4
подписьmd5([path]--[deadline]-[secret])md5('/video/--1983122408-password') = 4df70de26df93014d8c13962c88dee9c
deadlineYYYYMMDDHH2013122410

Подписывание прямых ссылок

Подпись генерируется на основе:

  • ip пользователя, которому выдается ссылка (ip указывать не обязательно, в случае его отсуствия адрес пользователя не проверяется),
  • времени окончания действия ссылки (UTC+00:00 в формате YYYYMMDDHH)
  • идентификатора файла
  • имени файла
  • api-ключа (api-ключ можно посмотреть и задать в настройках в web-интерфейсе пользователя)

Ограничение по времени и ip

ЗначениеФорматПример
ссылкаzerocdn.com/[подпись]/[deadline]/[id]/[name]zerocdn.com/62f68600ae7372948abeffdfa6c7262a/1983122408/1/file.flv
подписьmd5([id] - [name] - [ip] - [deadline] - [secret])md5('1-file.flv-127.0.0.1-1983122408-password') = 62f68600ae7372948abeffdfa6c7262a
deadlineYYYYMMDDHH2013122410

Ограничение по времени

ЗначениеФорматПример
ссылкаzerocdn.com/[подпись]/[deadline]/[id]/[name]zerocdn.com/15e4d52ec88756013bfa52541efda569/1983122408/1/file.flv
подписьmd5([id]-[name]--[deadline]-[secret])md5('1--file.flv-1983122408-password') = 15e4d52ec88756013bfa52541efda569
deadlineYYYYMMDDHH2013122410