【问题标题】:How would I serve zipped images via HTTP?我将如何通过 HTTP 提供压缩图像?
【发布时间】:2013-12-05 16:40:07
【问题描述】:

我希望用户上传他们的高分辨率图像文件以确保安全。他们可能想要打印它们或在未来做其他需要从文件的完整版本开始的事情。

对于常规展示,我将展示一个较小的版本,例如1024x800。但他们可以选择检索多百万像素文件。

我可以将它存储在某种 zip 文件中并节省大量磁盘空间,但有没有办法让我的网络服务器从该 zip 文件中提供图像?

浏览器:GET MyBigImage.jpg 服务器:加载 MyBigImage.jpg.zip 并返回 MyBigImage.jpg。

我在 Apache 或 Nginx 的上下文中考虑这个,但会考虑使用任何 Web 服务器的解决方案。

我对在文件上运行优化并只存储 How does Google's Page Speed lossless image compression work? 建议的优化版本并不感兴趣。

谢谢!

【问题讨论】:

  • 压缩已经压缩的文件不太可能节省太多空间:askubuntu.com/questions/274117/…
  • 好点,保罗。我刚刚从我的 Android 设备上检查了一些图像并得到了最小的压缩。
  • 并且不要忘记为压缩而增加 CPU 时间以获得微薄的收益!可能不值得。

标签: image compression


【解决方案1】:

如果您使用 gzip 压缩图像,则可以直接提供压缩图像文件,只需将 Content-Encoding 标头设置为 gzip

例如下面的 php 脚本会这样做:

<?php
header('Content-Encoding: gzip');
echo file_get_contents('./gzipped_images/' . $_GET['image']);
?>

或者在 nginx 上你可以这样做:

location /gzipped_images {
    more_set_headers 'Content-Encoding: gzip';
}

请注意,您将需要 HttpHeadersMoreModule

【讨论】:

    猜你喜欢
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2017-05-16
    相关资源
    最近更新 更多