Writing Flash crossdomain.xml para Amazon S3

Eu tenho dois servidores. O servidor A é um servidor interno que tem acesso do mundo externo configurado aqui no meu escritório. Possui um servidor Rails em execução. Eu tenho um segundo servidor, o Servidor B, que contém todo o nosso conteúdo estático (imagens, swfs, javascript, css etc.), é um servidor Amazon S3. Dei a todos esses arquivos acesso público.

O que estou tentando é colocar um swf do servidor B em uma página servida pelo servidor A. Em seguida, os outros ativos que o swf requer para exibir são carregados dinamicamente no servidor B. Infelizmente, no entanto, em algum lugar ao longo do caminho é falham e os arquivos solicitados para serem carregados dinamicamente nunca chega

Com base em erros no console do navegador, o swf espera que um arquivo crossdomain.xml esteja no servidor A. Com base emest, ele também precisa estar no meu servidor S3. Sendo assim, criei dois arquivos crossdomain.xml, um para cada servido

Este é o arquivo crossdomain.xml do servidor A:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM
  "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="s3-bucket-name.s3.amazonaws.com" />
</cross-domain-policy>

Este é o arquivo crossdomain.xml do servidor B:

<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE cross-domain-policy SYSTEM
  "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-access-from domain="*.server-a.com"/>
  <allow-http-request-headers-from domain="*.server-a.com" headers="SOAPAction"/>
</cross-domain-policy>

Adicionalmente, estou carregando explicitamente o arquivo crossdomain.xml do Servidor B no meu swf:

Security.loadPolicyFile("https://s3-bucket-name.s3.amazonaws.com/crossdomain.xml");

Não importa o que eu faça, no entanto, ele simplesmente não funciona. Não tenho certeza do que mais tentar. Eu tentei analisar várias soluções aqui no SO, mas nada me ajudou a resolver meu problema ainda. Certamente alguém já teve mais experiência nisso do que eu e pode me dar alguma orientação; neste momento, estou sem ideia

Atualiza Atualizando minha pergunta com mais algumas informações.

Eu tentei definir os dois arquivos de política como * e ele começou a funcionar até aparecer:

SecurityError: Error #2121: Security sandbox violation: Loader.content: s3.amazonaws.com/bucket_name/swfs/foo.swf cannot access s3.amazonaws.com/bucket_name/data/swfs/bar.swf. This may be worked around by calling Security.allowDomain.

Além disso, corri o Charles e ele está puxando o crossdomain.xml do meu servidor local, mas não o vejo para o s

Update 2 Tentei adicionar isso ao carregador:

var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
Loader.load(new URLRequest(_dataFile), context);

Isso resultou no download dos arquivos! Infelizmente agora ele falha com isso:

SecurityError: Error #2119: Security sandbox violation: caller s3.amazonaws.com/bucket_name/swfs/MainSwf.swf cannot access LoaderInfo.applicationDomain owned by s3.amazonaws.com/bucket_name/data/swfs/foo/SecondSwf.swf

Tentei incluir / não incluir ocontext.applicationDomain = ApplicationDomain.currentDomain; line, mas isso não resolveu o problem

O local onde a falha está ocorrendo é mais tarde, depois que o arquivo é carregado, onde estamos obtendo o aplicativoDomain:loader_.contentLoaderInfo.applicationDomain.getDefinition( def.a )

questionAnswers(6)

yourAnswerToTheQuestion