PDF.js消息:文件来源与查看者不匹配(Amazon S3)

在Rails应用程序中,使用pdfjs_viewer-rails gem( https://github.com/senny/pdfjs_viewer-rails ),我一直看到这个错误:

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

我认为这是因为PDF是托管在Amazon S3上的,我在这里阅读了CORS的讨论( https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-xhr ) 。 但是,我无法组装有效的COSR配置。

我目前的存储桶配置是:

    * GET Range 3000 Accept-Ranges Content-Range Content-Encoding Content-Length Authorization   

为了安全起见,我在我的rails应用程序中:

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

有没有其他人能够克服这个? 有谁知道一个适用于pdf.js和amazon s3的CORS政策?

在我的情况下,问题不是CORS相关。 我不得不覆盖/pdfjs_viewer/viewer.js并在第7000行的HOSTED_VIEWER_ORIGINS声明中包含我的开发和生产URL。

如果您想绕过欺骗检测,您可以使用

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