从 阿里云 oss 打包十几 G 的 zip 包供下载,目前用的 flysystem zip ,发现都是在 3.6G 左右就打完,丢失了好多文件。请问有什么好方法避免内存不足?另外下载又有什么好方案,目前是打包到服务器 xsendfile 下载,但是服务器带宽有限,也不能断点续传,想着打包完后回传 oss 再下载,但是好像也不能断点吧?
1
vibbow 2019-06-11 19:17:49 +08:00
直接系统命令调用 7z 进行打包
|
2
zhengwhizz OP @vibbow 能打包 oss 上的网络文件?几十万个文件的
|
3
KasuganoSoras 2019-06-11 20:09:16 +08:00
修改 php.ini
把 max_execution_time 参数调大一点 把 memory_limit 调大一点 最好用异步执行,或者命令行运行 另外你说你服务器带宽有限,那打包完了回传到 OSS 和直接给用户下载有啥区别啊……(挠头 最好是打包完了以后存到一个临时目录,然后让用户下载这个临时文件 因为有 Nginx 或者 Apache 去处理静态文件下载,就支持断点续传了 |
4
KasuganoSoras 2019-06-11 20:11:58 +08:00
最好就是搞个水管粗点的服务器,像国外便宜的 G 口服务器一大把,你只需要把下载文件这部分代码单独拎出来丢到下载服务器上去进行处理就好了,打包完了直接下载,不用搞什么回传 OSS。
|
5
zhengwhizz OP @KasuganoSoras oss 和 web 服务器是阿里同一区域内网的。目前最大一个打包估计 15 个 G。。调参数之前就调了。现在下载的就是静态文件形式的。
|
6
runtu2019 2019-06-11 20:31:18 +08:00
阿里云提供了那么多 oss 工具不知道用,不知道怎么说你了
先开通 ram 子账号,在下载 ossutil 工具或则其他 oss 工具,用 oss 外网地址进行连接 丢在那下一个晚上不就好了,直接下载到本地,oss 按量付费,外网带宽费也不要太多钱吧 |
7
0myun 2019-06-11 20:43:08 +08:00
@KasuganoSoras #4 “,像国外便宜的 G 口服务器一大把,”?推荐推荐呗
|
8
jimrok 2019-06-11 20:49:26 +08:00
有个 ossutil64 的命令,可以拷贝 oss 里的文件,你一个个目录拷贝,蚂蚁搬家如何?
|
9
wslsq 2019-06-11 22:11:55 +08:00
队列执行命令运行吧
|
10
zwl2012 2019-06-11 23:36:34 +08:00 via iPhone
不是可以调用 shell 管道压缩传送吗
|
11
zwl2012 2019-06-11 23:37:01 +08:00 via iPhone
管道压缩占用的内存应该还行吧
|
12
zwl2012 2019-06-11 23:37:11 +08:00 via iPhone
虽然压缩比一般
|
13
KasuganoSoras 2019-06-11 23:46:28 +08:00 1
@0myun #7 dedipath, nocix, onevps 这几个都是我常用的,搜一下名字就有,网上评测都很详细了
|
14
KasuganoSoras 2019-06-11 23:50:00 +08:00 1
@0myun #7 另外你的账号可能被降权了,你回复我没提醒,我刚刚点进来看才发现
|
15
chinesestudio 2019-06-12 01:58:30 +08:00 via Android
tar 有啥不好么
|
16
also24 2019-06-12 02:02:28 +08:00
同问,为什么要用 zip,这种场景似乎更应该用 tar
|
17
game69010 2019-06-12 08:07:33 +08:00
开临时服务器下载就不会占用自己服务器资源,可以临时买个配置高点的,宽带 5m,一两元不到的成本就可以搞定了
|
18
zhengwhizz OP |
19
also24 2019-06-12 11:58:15 +08:00
@zhengwhizz #18
还是要下载下来打包进去,推荐 tar 的原因主要有两个: 1、tar 可以增补文件,也就是说你可以一个一个文件下载下来加进去,减少磁盘 /内存占用 2、tar 是归档格式,只打包不压缩,减少 CPU/内存占用,提升打包速度 |
20
Jeffrey4l 2019-06-12 16:11:46 +08:00
试试 zsync?
|
21
zhengwhizz OP @also24 ok,我试试
|
22
zhengwhizz OP @also24 我用 tar 打了中文乱码,有解决方法吗?换了 zip 倒是正常。
|
23
also24 2019-06-13 09:47:24 +08:00
|
24
zhengwhizz OP @also24 包是给客户下的,解压设不现实,服务器设的话不知道会不会产生副作用。换了 zip 命令打出来正常就用它了。
|