当我尝试在 Chrome 和 FF 中单击我网站上的 pdf 链接时,它没有做任何事情。我可以右键单击并另存为,但无法在浏览器中打开它。当我删除 AWS key 和签名时,这两种浏览器都启用了 adobe 阅读器并且可以正常工作。
https://s3.amazonaws.com/bucket/sample.pdf?AWSAccessKeyId=&Expires=&Signature= // Does not open
https://s3.amazonaws.com/bucket/mypdf.pdf // Opens fine
它在 IE 和 Opera 中都可以正常工作。有什么办法绕过这个吗?
最佳答案
您的问题的原因非常明显,但可能很难解决。当您打开非关键链接时
https://s3.amazonaws.com/bucket/mypdf.pdf
浏览器在链接末尾获取 .pdf 扩展名并尝试下载它。但是当您有额外的请求参数时,您的链接不会以 .pdf 结尾,这可能会导致问题。
看起来您上传的 pdf 文件没有内容类型的元数据。如果您没有 自动找出内容类型 上传过程中选中的复选框,尝试通过添加元数据手动设置内容类型
content-type: application/pdf
另一个想法是让浏览器认为链接以 .pdf 结尾,因此尝试使用此链接下载:
https://s3.amazonaws.com/bucket/sample.pdf?AWSAccessKeyId=a&Expires=b&Signature=c&file=sample.pdf
关于url - 使用 AWS key 和签名属性在浏览器中从 Amazon S3 打开 .pdf 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530366/