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 16 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
php定时执行任务设置详解
Feb 06 PHP
php关联数组快速排序的方法
Apr 17 PHP
php header函数的常用http头设置
Jun 25 PHP
php中session定期自动清理的方法
Nov 12 PHP
php实现遍历多维数组的方法
Nov 25 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 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&&mysql)二
2006/10/09 PHP
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
JQuery 文本框使用小结
2010/05/22 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
python opencv如何实现图片绘制
2020/01/19 Python
如何查看python关键字
2021/01/17 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
表彰先进集体通报
2014/01/12 职场文书
打架检讨书400字
2014/01/17 职场文书
出纳会计岗位职责
2014/03/12 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
导游欢迎词范文
2015/01/23 职场文书
办公室个人总结
2015/02/28 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server