强制S3 PDF可以在浏览器中查看而不是下载

时间:2017-10-11 14:19:00

标签: amazon-web-services amazon-s3

因此,您可以使用Content-Disposition: attachment

强制下载

Content-Disposition: inline是默认设置,应该在浏览器中显示,它实际上可以处理大多数文件,如PNG,JPG等。

但出于某种原因,从S3生成预先签名的URL时,即使我没有使用内容处置:附件标题,PDF文件也会一直强制下载。

我希望能够在浏览器允许的情况下在浏览器中打开PDF

我正在使用来自S3客户端http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html

的预先签名的URL生成调用

4 个答案:

答案 0 :(得分:4)

检查文件的元数据,并从该文件中删除 Content-Disposition 条目。并根据文件类型设置内容类型

喜欢 文本文件内容类型 =' text / plain'

image png 内容类型 =' image / png'

pdf 内容类型 = application / pdf

pdfxml 内容类型 = application / vnd.adobe.pdfxml

如果您的文件内容类型是二进制/八位字节流,那么它将下载而不是显示。

由于

答案 1 :(得分:4)

您必须按如下所示设置putObject参数以查看pdf而不是下载。

 params = {
        Bucket: process.env.S3_BUCKET,
        Key: <fileName>,
        Body: <fileContent>,
        ContentDisposition:"inline",
        ContentType:"application/pdf"
    };

答案 2 :(得分:0)

您还需要正确设置Content-Type。浏览器将检查内容类型值,如果它不知道如何显示它将永远只是下载文件。

答案 3 :(得分:0)

您需要同时提供这两个元数据才能查看文件,而不是下载文件:

Content-Disposition: attachment
Content-Type: application/pdf