2014-12-08 3 views
1

비디오 온 디맨드 웹 사이트에 대해 CloudFront를 CDN으로 사용하려고합니다.CloudFront에서 서명 한 URL에 403 오류가 발생했습니다. 금지 된 오류

HTTP 배포 (iOS 기기로 스트리밍해야하므로 RTMP가 적합하지 않기 때문에)를 만들고 내 동영상 파일이 저장되는 내 S3 버켓으로 원점을 설정했습니다. 또한 CloudFront 키 쌍을 만들었습니다.

$cloudfront = AWS::get('CloudFront'); 

$streamHostUrl = 'http://REDACTED.cloudfront.net'; 
$resourceKey = 'videos/output/hls/REDACTED.m3u8'; 
$expires = '+10 minutes'; 

$signed_url = $cloudfront->getSignedUrl(array(
    'url' => sprintf('%s/%s', $streamHostUrl, $resourceKey), 
    'expires' => $expires, 
    'private_key' => base_path('cloudfront.pem'), 
    'key_pair_id' => 'APKAIPX4UJ26KJ65PKIA', 
)); 

을 그리고 내가 기대하는 방법을 찾고 URL을 생성합니다

나는 (Laravel에서)이 같은 서명 URL을 만듭니다 AWS PHP SDK를 사용하여.

개인 키 파일의 경로가 올바른지, 내 양동이에 지정된 객체 (REDACTED.m3u8)는 (모두볼 수있는의 허가/ 다운로드를 가지고 다른 모든 객체처럼 해당 폴더에 있음). 나는 다음 웹 페이지의 URL을 포함 :

<!DOCTYPE html> 
<html> 
    <head> 
    <title>HTTP Live Streaming Example</title> 
    </head> 
    <body> 
    <video src="<?php echo $signed_url; ?>" height="300" width="400" controls> 
    </video> 
    </body> 
</html> 

그러나,이 콘솔에 403 금지 오류가 발생합니다.

내가 뭘 잘못하고 있니? CloudFront를 통해 개체를 검색 할 수없는 이유는 무엇입니까?

서명 된 URL에 대한 요구 사항을 사용 중지했으며 검색어 문자열 매개 변수없이 객체에 액세스하면 (예 : http://REDACTED.cloudfront.net/videos/output/hls/REDACTED.m3u8) 동영상이 표시되므로 서명 된 URL이 필요할 때 문제가 발생합니다.

+0

안녕 마틴, 같은 문제에 직면하고있다. 이 문제를 해결할 수 있었습니까? – Sridhar

+0

@Sridhar 불행히도. –

+0

오! 승인. 문제 없어 – Sridhar

답변