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 相关文章推荐
利用PHP创建动态图像
Oct 09 PHP
php出现Cannot modify header information问题的解决方法大全
Apr 09 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
php 生成签名及验证签名详解
Oct 26 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 PHP
PHP中抽象类,接口功能、定义方法示例
Feb 26 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 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数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
Python多进程同步简单实现代码
2016/04/27 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
毕业设计计划书
2014/01/09 职场文书
微信营销策划方案
2014/02/24 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
《长相思》听课反思
2014/04/10 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript