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