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读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
关于PHPDocument 代码注释规范的总结
Jun 25 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php实现的ping端口函数实例
Nov 12 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
PHP大神的十大优良习惯
Sep 14 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
php-fpm服务启动脚本的方法
Apr 27 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
一个程序下载的管理程序(三)
2006/10/09 PHP
php访问查询mysql数据的三种方法
2006/10/09 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
python3个性签名设计实现代码
2018/06/19 Python
python版DDOS攻击脚本
2019/06/12 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
公司中秋节活动方案
2014/02/12 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
大学教师个人总结
2015/02/10 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA
Nginx跨域问题解析与解决
2022/08/05 Servers