PHP'de imzalanmış Cloudfront üzerinde imzalanmış URL'lerim var. Kota politikaları S3'teki HTTP yönlendiricileriyle çalışır, ancak Cloudfront HTTP yönlendirme denetimlerini desteklemediğinden, yalnızca bir IP adresine dosya göndermem gerekir (dosyayı isteyen ve imzalanan URL'yi veya web sunucumu ideal olarak yaratan istemci).cloudfront İmzalı urls ip adresi
Birisi, lütfen JSON koduna IP Adres öğesini eklemem için bana yardımcı olabilir mi?
"IpAddress":{"AWS:SourceIp":"192.0.2.0/24"},
PHP ve Politika Beyanı ile kaybedilen ama bilen birisi için kolay olabileceğini düşünüyorum ediyorum: http://tinyurl.com/9czr5lp
It does kodlama/Özel bir politika için biraz farklı imzalanması: http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html#private-content-custom-policy-statement
Aşağıdaki örnek bir AWS örneğidir ve IP Adres kilidi için geçerli değildir.
Birisi bana iki dakika süre verebilirse bunu çok hızlı bir şekilde test edebilirim! MASSIVELY herhangi bir yardım için
Teşekkür :)
Jon
function getSignedURL($resource, $timeout)
{
$keyPairId = "XXXXXXXXXXXX";
$expires = time() + $timeout;
$json = '{"Statement":[{"Resource":"'.$resource.'","Condition":{"DateLessThan": {"AWS:EpochTime":'.$expires.'}}}]}';
$fp=fopen("pk-XXXXXXXX.pem","r");
$priv_key=fread($fp,8192);
fclose($fp);
$key = openssl_get_privatekey($priv_key);
if(!$key)
{
echo "<p>Failed to load private key!</p>";
return;
}
//Sign the policy with the private key
if(!openssl_sign($json, $signed_policy, $key, OPENSSL_ALGO_SHA1))
{
echo '<p>Failed to sign policy: '.openssl_error_string().'</p>';
return;
}
//Create url safe signed policy
$base64_signed_policy = base64_encode($signed_policy);
$signature = str_replace(array('+','=','/'), array('-','_','~'), $base64_signed_policy);
//Construct the URL
$url = $resource.'?Expires='.$expires.'&Signature='.$signature.'&Key-Pair-Id='.$keyPairId;
return $url;
}
$url = getSignedURL("http://s675765.cloudfront.net/filename.mp4", 600);
print $url;
olarak
örnek deyimi ?? –
Bu, bir yorumda açıklamak için biraz karmaşıktır. Genellikle son segmenti 0'a keserek ve/24 sekizlik maskeyi ekleyerek tam 0-255 aralığına izin verirsiniz. 10.0.0.1-10.0.0.255, 10.0.0.0/24 olacaktır. CIDR hakkında genel bilgi için http://en.m.wikipedia.org/wiki/Classless_Inter-Domain_Routing –
IP viz 114.235.149.30'u CIDR formatına dönüştürmek için herhangi bir php işlevi bakın ??? Veya url imzalarken sadece 1 tek ip 114.235.149.30 kullanabilir miyim? –