这很可能与android无关,但在我的游戏中,用户可以通过akamai cdn下载内容。除了jpeg文件外,其他文件都能很好地工作,对于一些用户来说,jpeg文件是用不同的压缩方式提供的。这在某种程度上取决于设备/android构建版本/提供商/位置(因此也取决于实际的akamai节点)。
由于我在下载后会进行哈希检查,以检查文件是否正确交付,因此我会为被操纵的jpeg文件获得不同的哈希,并检测到错误。
我已经更改了下载过程,以便所有文件都命名为
filename_ext.bin
因此,mime类型将是application/octet-stream,而不是mage/jpeg,但它仍然会让中间的某个节点(可能是代理?)检查文件内容并重新压缩jpeg(以节省10-20%的jpeg大小;毕竟,cpu功率便宜,带宽昂贵)。
有人经历过这种问题吗?
也许一个解决方案是压缩每个文件并在设备上解压缩(希望无论是什么改变文件都不会再次解压缩/更改jpeg/zip)。
提前谢谢。
好的,刚刚从akamai支持部门得到答案:
"一些提供商安装了透明代理,可以动态重新压缩图像图形(jpg和gif),还可以修改HTML页面。图像是根据其文件签名识别的,而不是根据文件扩展名识别的。">
所以我实际上必须对文件进行加密/压缩以避免这种情况。。。
此外:http标头
Cache-Control no-transform
也成功了。