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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
PHP 采集程序 常用函数
Dec 18 PHP
php 购物车实例(申精)
May 11 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
PHP使用递归生成文章树
Apr 21 PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
PHP针对redis常用操作实例详解
Aug 17 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP 身份证号验证函数
2009/05/07 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
python线程中同步锁详解
2018/04/27 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
工作建议书范文
2014/05/13 职场文书
保护野生动物倡议书
2014/05/16 职场文书
创先争优一句话承诺
2014/05/29 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
送给客户微信问候语!
2019/07/04 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
Log4j.properties配置及其使用
2021/08/02 Java/Android
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫