2016-05-21 14 views
0

In einer Rails-Anwendung, mit dem pdfjs_viewer-rails gem (https://github.com/senny/pdfjs_viewer-rails) entspricht, halte ich diesen Fehler zu sehen:Pdf.js Nachricht: Datei Herkunft nicht Zuschauer (Amazon S3)

PDF.js v1.3.91 (build: d1e83b5) 
Message: file origin does not match viewer's 

Ich nehme an, dies, weil die PDF ist auf Amazon S3 gehostet, und ich habe die Diskussion von CORS hier (https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-xhr) gelesen. Ich konnte jedoch keine funktionierende COSR-Konfiguration erstellen.

Meine aktuelle Eimer Konfiguration ist:

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

und nur um sicher zu sein, in meinen Schienen-app ich habe:

config.action_dispatch.default_headers = { 
     'Access-Control-Allow-Origin' => '*', 
     'Access-Control-Request-Method' => %w{GET}.join(",") 
    } 

Hat jemand die Lage, dies zu überwinden? Kennt jemand eine CORS-Richtlinie, die mit pdf.js und amazon s3 funktioniert?

+0

See können auch http://stackoverflow.com/questions/37378251/load-pdf-on-fremder-url-with-pdf-js – async5

Antwort

0

In meinem Fall war das Problem nicht CORS verwandt. Ich hatte überschreiben /pdfjs_viewer/viewer.js und sind meine Entwicklung und Produktion Urls in der HOSTED_VIEWER_ORIGINS Erklärung um die Linie 7000.

+0

Personen, die das Risiko von Content-Spoofing eingehen möchten, können diesen Schutz entfernen. In diesem Fall kann der angepasste Viewer unabhängig/Streich/Offensive anzeigen Inhalt unter dem Domain-Namen des Betrachters. Fügen Sie eine Whitelist hinzu, um den Ursprung der potenziellen Dokumente besser zu schützen. – async5

-1

Wenn Sie umgehen Spoofing Erkennung möchten, können Sie

gem 'pdfjs_viewer-rails', :github => 'MattFenelon/pdfjs_viewer-rails', ref:'615bfd2'