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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP无限分类的类
Jan 02 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
Feb 12 PHP
PHP CURL使用详解
Mar 21 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
Sep 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
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
python实现列表的排序方法分享
2019/07/01 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
Python绘制动态水球图过程详解
2020/06/03 Python
python交互模式基础知识点学习
2020/06/18 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
开学典礼决心书
2014/03/11 职场文书
继承公证书
2014/04/09 职场文书
旅游节目策划方案
2014/05/26 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
小学总务工作总结
2015/08/13 职场文书
2016年感恩节寄语
2015/12/07 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL