【发布时间】:2016-09-08 17:56:36
【问题描述】:
在 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 上,并且我已阅读此处 (https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-xhr) 对 CORS 的讨论。但是,我一直无法组装一个有效的 COSR 配置。
我目前的bucket配置是:
<?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>
为了安全起见,在我的 rails 应用程序中,我有:
config.action_dispatch.default_headers = {
'Access-Control-Allow-Origin' => '*',
'Access-Control-Request-Method' => %w{GET}.join(",")
}
还有其他人能够克服这个问题吗?有人知道适用于 pdf.js 和 amazon s3 的 CORS 政策吗?
【问题讨论】:
标签: ruby-on-rails amazon-s3 pdf.js