2014-09-19 6 views
1

나는 Amazon s3 버킷에 저장된 많은 줌 이미지를 가지고 있으며 Open Seadragon dzi 뷰어로 표시하는 웹 페이지가 있습니다. 이미지를 표시 할 수는 있지만 이미지를 다운로드 할 수는 없습니다. 내가 오염 된 캔버스를 가지고 있다는 보안 오류가 나타납니다. (접근 제어 - 수 - 기원 헤더가 없었다으로 이전에 내 OpenSeadragon 호출이 실패)오염 된 캔버스에서 이미지를 다운로드 할 수 없습니다. Amazon S3 버킷에서 호스팅되는 Seadragon 이미지를 다운로드하려면 어떻게해야합니까?

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

나 이미지를 표시 할 수 있지만 내를 :

나는 버킷에 CORS 구성을 설정 캔버스가 여전히 오염되고 있습니다.

은 내가 seadragon 뷰어에서 crossOrigin 정책을 설정했습니다 :

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에 정책 옵션의 이름을 변경해야한다 : 이것은 내 전체 스크립트입니다.