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 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
php 中文处理函数集合
Aug 27 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
php批量上传的实现代码
Jun 09 PHP
PHP CURL获取cookies模拟登录的方法
Nov 04 PHP
php的mssql数据库连接类实例
Nov 28 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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获取不到SESSION信息之一般情况
2019/10/10 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
js实现全选和全不选
2020/07/28 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
Python数据类型详解(四)字典:dict
2016/05/12 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
Django中信号signals的简单使用方法
2019/07/04 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
民主生活会批评与自我批评总结
2014/10/17 职场文书
批评与自我批评总结
2014/10/17 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
MySQL创建管理HASH分区
2022/04/13 MySQL
MySQL常用慢查询分析工具详解
2022/08/14 MySQL