2
我很努力地发送一个来自S3的Gzip文件的响应。我从S3下载文件作为Array[Byte]
,然后我想将它传递给客户端,并让浏览器负责解压缩。发送已经Gzip的有效负载到客户端
要清楚,我没有在Play中使用内置的gzipFilter,因为数据已经被压缩。
我有这个在我的控制器的动作:
s3DAO.getFile(id).map(bytes => Ok(bytes).as("application/gzip”))
在客户端(使用邮差调试),该Content-Type
头被设置为application/gzip
,但身体找出来是这样的:
���[�W�$��j3��-��/�-HOz��ƒ@�HȄ%D���E�Л��%�=P�����$�*v7��X����������=x|��w������챕8�,��X���
我知道这些字节代表一个有效的有效载荷,因为如果我在控制器动作中插入自己解压缩的代码,我可以打印出它:
val zipInputStream = new GZIPInputStream(new ByteArrayInputStream(bytes))
val rawString = scala.io.Source.fromInputStream(zipInputStream, Charsets.UTF_8.name).mkString
println(rawString) // I can see my payload
我不知道该怎么调试这个任何进一步
您是否尝试使用其他HTTP客户端,比如'curl'? – vdebergue