Частичная подпись ссылки

Такой вид подписи можно использовать если есть несколько файлов в одной папке , например:

/1/2/31.mp4 
/1/2/32.mp4
/1/2/33.mp4

В этом случае можно сгенерировать подписанную ссылку для части

/1/2/

и подставлять только имена файлов без изменения подписи. Также вариант использования частичной подписи, если имена файлов в одной подпапке отличаются качеством , к примеру

/1/2/3_240p.mp4
/1/2/3_360p.mp4
/1/2/3_480p.mp4

Можно подписать часть файла

/1/2/3_

и менять только конечную часть ссылки .

Пример скрипта для генерации подписи

<?php
# время жизни ссылки                                                                                                             
$expire = time() + 3600;        

# файл в цдне  1/2/3_720p.mp4
$file_part1 = "1/2/3_"; 
$file_part2 = "720p.mp4";
$file_part1_len = length($file_part1);
$url = ",end=$expire,len=$file_part1_len/$file_part1";

# можно изменять настройки скорости и буфера  в урле , по-умолчанию берутся настройки аккаунта, потом домена
# http://wiki.ahcdn.com/doku.php?id=ru:feature_default_settings
#$url = ",end=$expire,len=$file_part1_len/speed=300K/buffer=5.0/$file_part1";

$domain = 'cdn.domain.com';    

# secret нужно запросить у поддержки цдна , изменять нельзя - ссылка не будет проходить проверку
$secret = 'qwerty';
$key = substr(base64_encode(md5("$secret$url", true)), 0, 22);
$key = str_replace('/', '-', $key); 
$fullurl = 'http://' . $domain . '/key=' . $key . $url$file_part2;

# Получится ссылка вида
# $fullurl == "http://cdn.domain.com/key=9CVHszhqqsA,end=1374068216,len=6/1/2/3_720p.mp4" 
?>

Есть возможность указывать “белый список” адресов , для которых не будет проверяться подпись урла( настройка keycheck_whitelist у клиента). Делается через поддержку цдна.

Про обычную подпись можно почитать здесь: Подпись ссылки