开始
最近代码重构遇到了一个问题,需要把OSS 上的一批图片打包下载
旧服务器的硬盘是直接挂载OSS,所以直接调的Linux系统命令复制打包,所以速度比较快。新服务器重构代码行不通,这样做也不好
查阅OSS并没有提供相关API(七牛支持)
解决方法:
PASS掉 PHP后台fetch图片到内存然后进行打包输出给前端(图片有ai,psd内存撑不住)
PASS掉 PHP后台fetch图片到服务器硬盘,然后进行打包输出一个临时链接给前端(同上,文件太大,导致fetch时间和打包的时间太久)
JS 尝试通过前端请求后端,后端返回文件信息,然后前端异步请求所有文件,最后在前端打包下载
前提
想法很好,并且已经有人这样做了,我们只用考虑按照别人的做法坐下去
前端打包有两个前提:
跨域问题,需要运维在OSS或者下载的资源服务器设置允许跨域
CDN问题,让运维配置一个新域名不要走CDN(如没使用CDN可忽略)
步骤
直接下载这两个库,然后把dist/下的文件放入到项目,也可以用github提供的方式引入
部分逻辑代码如下
// 引入文件
let total = 0;
let progress = 0;
// 可通过按钮或者其它事件触发
$.get('/urls', function(res) {
// 假设 res.data 是后端返回的一组远程数据对象
// {url: 'x.jpg', filename: &#