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中提到的文件名中的逗号不能被替换。
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