2010-02-25 5 views
2

아마존 S3 버킷에서 오는 swf를로드해야하는 domainA에 플래시 앱이 있습니다. 로드 중 다음 오류가 발생합니다. "Error #2044: Unhandled securityError:. text=는 "아마존 S3에서 로딩 swf - 크로스 도메인 정책

나는 트릭을 할 것이라고 버킷에서 교차 도메인 파일을 넣어 추정했다. 내가이 문제를 해결할 수있는 방법?

+0

플래시를 참조하십시오. xml 파일? –

+0

모든 도메인 허용. cross-domain-policy> Chin

답변

9

버킷 이름 DNS를 사용하여 S3에 액세스 할 수 있습니다. 그래서 s3.amazon.com/bucketname/filename 대신 bucketname.s3.amazon.com/filename입니다. 당신이 루트 경로

<allow-access-from domain="bucketname.s3.amazonaws.com" /> 

더 나은 방법이 교차 도메인 파일을 가짜 루트 DNS 서버에 CNAME 레코드를 사용하는 것입니다에 자신의 도메인 간 파일을 넣을 수 있습니다이 방법을 사용. 예 :

DNS 서버에서 bucketname.yourdomainname.com을 bucketname.s3.amazon으로 지정하도록 CNAME 레코드를 만듭니다.

와 COM

그 버킷 루트

<allow-access-from domain="bucketname.yourdomainname.com" /> 

에 교차 도메인 파일을 넣어 그리고 당신은`교차 도메인에있는 무엇을 bucketname.yourdomainname.com/flash.swf 등 같은 파일

+0

고마워, cname 변경과 함께 갔다 - 치료를했습니다. – Chin

0

귀하의 도메인 간 파일이 일을 있어 플래시 응용 프로그램을 사용하여 서버에 있어야합니다로드,하지에서의로드 파일에 다음 당신은 허용 도메인과 S3 도메인을 지정

<allow-access-from domain="s3.amazonaws.com" /> 

편집 :... 좋아, 내가 공식적으로 혼동하고있어

제 생각에 JB는 자신이 저에게 잘못된 길을 걸어주었습니다. here에서 :

플래시 플레이어 7은 밖으로의 도메인 데이터 로딩 요청을 감지 할 때마다

, 플레이어는 데이터를로드 을 시도되는 서버의 정책 파일 을 찾으려고합니다. 정책 파일에 이 있고 요청을하는 Flash 무비의 도메인 도메인에 대한 액세스를 허용하면 작업이 성공합니다.

그러나, 우리는 우리의 클라이언트 웹 사이트 중 하나에이 정확한 것 (원격 아마존 서버에서 플래시 구성 요소에로드 이미지를) 할, 아직 우리의 crossdomain.xml 파일을 로딩 웹 서버 아마존의 루트에 버킷에는 정책 파일이 없습니다.

사이트의 작동 방식은 어떻습니까? 문서에 따르면, 그렇게해서는 안됩니다! 편집 2

WOUTER의 의견에 따라 경찰, 내가 무엇을하고 있는가하는 것은 내 도메인 간 파일이 잘못된 위치에 있더라도 나를 위해 작동 이유를 설명하는 특별한 경우이다

...

+1

나는이 파일을 거꾸로 가지고있어 크로스 도메인 파일을 사용해야한다고 확신한다. 데이터를로드하는 서버와 지정된 도메인이 swf 파일 인 경우 – jcoder

+0

덕분에 경로에 있어야합니다. 아니면 기본 응용 프로그램과 같은 폴더에 던져 넣을 수 있습니까? 많이 감사합니다 – Chin

+0

나는 그것이 어떤 방식으로되어 있을까? – Chin

1

로드 swf 파일은 데이터를로드하는 것과 정확히 동일하지 않습니다. 따라서 crossdomain.xml 이상이 필요할 수 있습니다. crossdomain.xml 파일의 위치를 ​​보려면 httpfox와 같은 "스니핑"도구를 사용하여 Flash Player에서 파일을 찾는 위치를 확인하는 것이 좋습니다.

다른 도메인의 swf가 상호 작용할 수있게하려면 Security.allowDomain을 호출해야합니다. 자세한 내용은 the adobe docs on cross-scripting을 참조하십시오.