2017-01-30 3 views
0

AWS를 사용하여 웹 사이트의 오디오/비디오 콘텐츠를 저장합니다. 동일한 서버에 대해 AWS cloudFront signed cookie가 간헐적으로 실패합니다.

통조림 정책을 사용하여 우리는 우리가 서명 된 쿠키

: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html

그래서 우리는 데이터를 검색하기 위해 각 요청에 대해 설정 3 개 쿠키 있습니다

CloudFront-Policy; 
CloudFront-Signature; 
CloudFront-Key-Pair-Id; 

을 그리고 자원의 URL에 액세스하는 데 사용됩니다 like http://cloudfront.org_name.com/2016%2F7%2F1%2FStanding+Meditation_updated+91615.mp3

세 개의 쿠키는 모두 각 요청마다 올바른 사전 설정 값으로 새롭게 설정됩니다 (Java 기반).

대부분의 콘텐츠에서 대부분 작동하지만 일부 리소스의 경우 403 금지됨 오류로 인해 실패합니다.

별도의 브라우저 탭에서 두 개의 내용 (한 개는 작동하지 않음)을 열면 모든 쿠키와 나머지 부분은 리소스 URL을 제외하고 완전히 동일하게 보입니다.

아직 - 하나는 작동하지만 다른 하나는 작동하지 않습니다.

FF의 다른 시간에 Chrome에서 동일한 물리적 클라이언트 컴퓨터에서 요청 된 동일한 리소스가 때로는 혼란 스럽지만 한 브라우저에서 작동하지만 다른 컴퓨터에서는 실패합니다.

또한 사용자 브라우저 쿠키가 삭제되는 경우가 있는데, 실패 할 때마다 식별 가능한 패턴이 표시되지 않습니다.

나는 틀린 것을보기 위해 고투하는 것에 따라 나를 미치게했다.

그 이유가 무엇이고 어떤 해결책을 시도 할 수 있는지에 대한 통찰력을 제공 할 수 있습니까?

+2

먼저 쿠키, URL 또는 서비스의 문제인지 확인해야합니다. URL의'+'가 CloudFront에서 문제를 일으키지 않는다고 확신하지는 않습니다. 한 번에, 나는 이것과 관련된 버그가 있다고 믿었다. * 절대 작동하지 않는 URL이 있습니까? * 결코 작동하지 않는 쿠키가 있습니까? 실패에서 쿠키와 URI를 캡처하면 '컬 (curl)'로 재생할 수 있습니다. –

+0

마이클 감사합니다. 곱슬 곱슬 함을 사용하여 정확히 같은 쿠키와 함께 다음 두 URL을 실행합니다. curl -v -b "3 개의 쿠키 : 값 쌍이 여기에 있습니다"http://cloudfront.test.company_name.com/dev%2F2016%2F8%2F4%2F01 + 트랙 + 1.mp3 - 나던 작품; curl -v -b "3 개의 쿠키 : 값 쌍이 여기에 있습니다"http : //cloudfront.test.company_name.com/dev%2F2016%2F4%2F19%2FGoPro-+Best+of+2015+-+The+Year+in+Review.mp4 - 작품 –

답변

0

좋아, 대답은 마이클에 대한 내 대답에 있습니다

가 나중에 콘텐츠를 작업하고 실패에 대한 자원 URL이 달랐다 것으로 나타났습니다. 첫눈에 그 차이를 두지 않기 위해 거의 가깝지만, 다른 것. 요리, 머리글, 기타 매개 변수는 모두 동일했습니다. 그러나 나는 2 개의 다른 내용을 비교하고 있었다. 첫 번째 URL은 항상 작동하고 두 번째 URL은 항상 실패합니다.

학습 : 두 리소스를 신중하게 말아서 uRLS를 분석하여 실제로 다른 것을 확인하십시오.

팁 : Chrome의 개발 도구를 사용하여 컬 명령을 유도하십시오. 실패한 URL에서 오른쪽 클릭 -> 복사 -> cURL로 복사를 클릭하십시오. 그런 다음 테스트 할 명령 줄에 붙여 넣습니다.

지금까지 실패한 리소스를 다시 업로드하고 추천 웹 페이지를 업데이트했습니다. 모든 것이 다시 작동합니다.