S3 预签名 URL - 内容描述中提供的文件名,用于生成预签名 URL,下载时出错

问题描述 投票:0回答:1
尝试使用预先签名的 Url 从 AWS S3 下载文件,并在 Content Desposition 中设置文件名。 文件名带有逗号“,”。当我尝试使用该预签名 URL 下载此文件时,在浏览器中出现此错误 ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION。这是我的java代码。

ResponseHeaderOverrides override = new ResponseHeaderOverrides(); override.setContentDisposition("attachment; filename="+ "BM, EN-POP, SWP - 8P GUK A.pptx"); GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(Bucket_name,S3_Object) .withMethod(HttpMethod.GET) .withExpiration(expiration) .withResponseHeaders(override);`
生成的预签名 URl 是:

https://BUCKETNAMEamazonaws.com/S3OBJECT?response-content-disposition=attachment%3B%20filename%3DBM%2C%20EN-POP%2C%20SWP%20-%208P%20GUK%20A.pptx&X-Amz-算法=AWS4-HMAC-SHA256&X-Amz-Date=20200914T142744Z&X-Amz-SignedHeaders=主机&X-Amz-Expires=56&X-Amz-Credential=AKIA6HDPIVH2Z7PVP4SY%2F20200914%2Fap-south-1%2Fs3%2Faws4_request&X- Amz-签名=1095c99c6d9ad83a9d14d2af89d064ac420783f6a58f0071537b4d623d02d546

任何人有任何想法,内容-Desposition中提到的文件名中的逗号不能被替换。

java amazon-web-services amazon-s3 pre-signed-url
1个回答
0
投票

Content-Disposition

标头的推荐语法是用引号将文件名括起来。

Content-Disposition: inline Content-Disposition: attachment Content-Disposition: attachment; filename="filename.jpg" Content-Disposition: attachment; filename*="filename.jpg"

文件名两边的引号是可选的,但如果您在文件名中使用特殊字符(例如空格),则必须使用引号。

来源:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#syntax

© www.soinside.com 2019 - 2024. All rights reserved.