2014-09-19 4 views
1

J'ai un tas d'images à zoom profond stockées dans des seaux Amazon s3, et j'ai une page Web qui les affiche avec un visualisateur dzi Open Seadragon. Je suis capable d'afficher les images, mais je n'arrive pas à les télécharger. Je reçois l'erreur de sécurité que j'ai une toile contaminée.Impossible de télécharger l'image à partir de la toile contaminée; Comment puis-je télécharger une image Seadragon hébergée dans un compartiment Amazon s3?

Je mis une configuration CORS dans les seaux:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <CORSRule> 
     <AllowedOrigin>*</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <MaxAgeSeconds>3000</MaxAgeSeconds> 
     <AllowedHeader>Authorization</AllowedHeader> 
    </CORSRule> 
</CORSConfiguration> 

qui m'a permis d'afficher les images (précédemment mon appel OpenSeadragon a échoué, car il n'y avait pas de contrôle d'accès permettent aux d'origine en-tête), mais mon la toile est encore entachée.

J'ai essayé la politique de mise en crossOrigin dans la visionneuse de Seadragon:

var viewer = OpenSeadragon({ 
     crossOrigin: "Anonymous", 
     id: "databaseviewer", 
     prefixUrl: "../../Scripts/openseadragon/images/", 
     tileSources: url, 
     maxZoomLevel: 20 
    }); 

, mais cela ne change rien. Ceci est mon script complet:

var url = '@Model.ImageUrl'; 

var viewer = OpenSeadragon({ 
    crossOrigin: "Anonymous", 
    id: "databaseviewer", 
    prefixUrl: "../../Scripts/openseadragon/images/", 
    tileSources: url, 
    maxZoomLevel: 20 
}); 

viewer.addHandler('open', function() {     
    var downloadlink = document.getElementById("download"); 
    $(downloadlink).on("click", function() { 
     var img = viewer.drawer.canvas.toDataURL("image/png"); 
     downloadlink.href = img; 
     downloadlink.download = '@Model.DatabaseName'; 
    }); 
}); 

Répondre

0

Selon le API documentation, vous devez renommer l'option politique crossOriginPolicy.

Questions connexes