2014-09-19 4 views
1

У меня есть куча изображений глубокого зума, хранящихся в ведрах Amazon s3, и у меня есть веб-страница, которая отображает их с помощью средства просмотра Open Seadragon dzi. Я могу отображать изображения, но я не могу их загрузить; Я получаю ошибку безопасности, что у меня испорченный холст.Не удается загрузить изображение с испорченного холста; Как загрузить изображение Seadragon, размещенное в ведро Amazon s3?

Я установил конфигурацию CORS в ведрах:

<?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> 

, что позволило мне показать изображения (ранее мой OpenSeadragon вызов не удалось, так как не было никакого контроля доступа, Allow-Origin заголовок), но мой холст все еще испорчен.

Я попытался установить политику crossOrigin в зрителе Seadragon:

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

, но это ничего не меняет. Это мой полный сценарий:

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'; 
    }); 
}); 

ответ

0

Согласно API documentation, вы должны переименовать параметр политики в crossOriginPolicy.

Смежные вопросы