求助!!服务器上的图片需要打包下载,环境是 nginx+ PHP

2017-06-15 14:41:21 +08:00
 qq7588245

图片上传上去 并没有打包 现在是下载的时候 php 进行打包然后输出,然后在删除压缩包! 这样太消耗资源了 ,请问有没有更好的解决方案 ,真心谢谢了。

3083 次点击
所在节点    PHP
16 条回复
yangliulnn
2017-06-15 14:47:45 +08:00
可以考虑第三方存储方案,例:某牛云
skylancer
2017-06-15 14:47:48 +08:00
你图片有没有命名规律啊,有的话随便一个下载工具完事了..
没有的话,你还是 SSH 上去打个大包吧
qq7588245
2017-06-15 14:53:47 +08:00
@yangliulnn 暂时不考虑第三方
qq7588245
2017-06-15 14:54:09 +08:00
@skylancer 这个必须要自动化,不能手动去打包。
zhengxiaowai
2017-06-15 16:23:30 +08:00
考虑异步框架去打包
qq7588245
2017-06-15 16:31:16 +08:00
@zhengxiaowai 这个能具体一点吗?
zhengxiaowai
2017-06-15 16:52:46 +08:00
一种简单的方案:图片上传完成后把所需要的信息发布到 MQ 中,另一边订阅打包

MQ 可以是 redis 或者 rabbitMQ 等都行。

打包前后记录打包状态,只有打包完成时候才可以下载。

我不清楚你所指的 “消耗资源” 指的是什么,如果是 CPU IO 内存的话,这个没办法避免,只能放到另一台机器上打包。
qq7588245
2017-06-15 16:55:50 +08:00
@zhengxiaowai 谢谢,是一种方案,不用 php 来打包了
willis
2017-06-15 21:42:49 +08:00
不打包,直接 rsync
kkeybbs
2017-06-15 23:57:57 +08:00
如果只是为了备份,不想改网站,可以考虑只用七牛做差异备份。
我自己用七牛,cron 里面加 qshell,定期差异同步到七牛(免费 10G 空间,个人够用),其他地方可以继续用 qshell 差异下载回来。
hilyjiang
2017-06-16 01:52:01 +08:00
为什么要压缩完成后再下载呢?
一边压缩一边下载不就好了?
qq7588245
2017-06-16 09:08:04 +08:00
@willis 这个用 php 实现呢?
qq7588245
2017-06-16 09:08:15 +08:00
@hilyjiang 怎么实现呢?没做过
aksoft
2017-06-16 09:21:21 +08:00
打包下载下来干啥?直接同步到内网机器不就行了。
qq7588245
2017-06-16 13:54:42 +08:00
@aksoft 我这个是个平台 用户上传资料,我们打包下载资料
aru
2017-06-17 17:09:53 +08:00
@qq7588245
如果确定是压缩率高的图片格式( jpg/png 等),创建 zip 文件的时候压缩模式设为存储
$zip->setCompressionIndex(0, ZipArchive::CM_STORE);

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368609

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX