PHP sdk实现在线打包代码示例


Posted in PHP onDecember 09, 2020

如果需要将空间中的多个文件,打包成一个压缩文件,该怎么做,不需要自己本地打包好再上传,七牛已经为我们提供了这项服务。

命令:mkzip/2/url/xx/alias/xxx;

不仅可以将文件打包,还可以将打包内容按文件夹进行划分,如test.zip 解压后为文件夹T1和T2,文件夹中再是具体的文件,改如何做,主要就在alias命名上了,alias只要命名为文件夹/文件名的形式就可以了。

所以如果我们有多个类型的多个文件,可以封装一个方法,传递给他一个原文件名和别名的数组就可以了。然后方法就是遍历数组对pfop命令进行多个url与alias的拼接。

/**
 * 七牛资源压缩
 * @param $packageName 打包后的资源名
 * @param Array $sourceArray 资源数组 
 * [
 *   [
 *     'key' => 'http://source.domain.cn/test1.ppt',
 *     'alias' => 'alias1.ppt',//别名 可空,空则为源文件名,如要创建文件夹则命名为 文件夹名/文件名
 *   ],
 *   [
 *     'key' => 'http://source.domain.cn/test2.ppt',
 *     'alias' => 'alias2.ppt'
 *   ],
 * ]
 */
public function compress(Array $sourceArray,$packageName,$callbackUrl='')
 {
   $bucket = $this->bucket_for_image;
   $fops = 'mkzip/2';
   foreach ($sourceArray as $k => $source) {
     $Base64EncodedURL = $this->base64_urlSafeEncode($source['key']);
     $Base64AliasEncodedURL = $this->base64_urlSafeEncode($source['alias']);
     $fops .= '/url/'.$Base64EncodedURL;
     if(!empty($source['alias'])){
       $fops .= '/alias/'.$Base64AliasEncodedURL;
     }
   }
   $fops .= '|saveas/'.$this->saveasEnocde($packageName); 
   $res = $this->persistentOps('test.txt',$bucket,$fops,$callbackUrl,false);
   echo $res;
 }

需要注意的一点是,调用persistentOps的时候,第一个参数必须为bucket内一个有效存在的资源的名称,没有实际作用,但必须指定。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
php验证码实现代码(3种)
Sep 07 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
Dec 14 PHP
PHP+swoole实现简单多人在线聊天群发
Jan 19 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
基于PHP实现生成随机水印图片
Dec 09 #PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 #PHP
win10下 php安装seaslog扩展的详细步骤
Dec 04 #PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 #PHP
浅谈PHP中的那些魔术常量
Dec 02 #PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 #PHP
php如何实现数据库的备份和恢复
Nov 30 #PHP
You might like
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
jQuery对象[0]是什么含义?
2010/07/31 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python中的枚举类型示例介绍
2019/01/09 Python
Django REST framework视图的用法
2019/01/16 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
python 实现简易的记事本
2020/11/30 Python
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
婚庆公司的创业计划书
2014/01/22 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
总经理岗位职责范本
2014/02/02 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python