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中文本操作的类
Mar 17 PHP
关于使用coreseek并为其做分页的介绍
Jun 21 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
php去除HTML标签实例
Nov 06 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 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一些十分严重的缺陷详解
2013/06/03 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
js日期相关函数总结分享
2013/10/15 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
Python自动扫雷实现方法
2015/07/25 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
使用Python设计一个代码统计工具
2018/04/04 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
数据库方面面试题
2012/04/22 面试题
关于赌博的检讨书
2014/01/24 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
中秋寄语大全
2014/04/11 职场文书
物业管理专业自荐信
2014/07/01 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
地道战观后感
2015/06/04 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
go xorm框架的使用
2021/05/22 Golang
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫