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 相关文章推荐
文件上传类
Oct 09 PHP
php生成WAP页面
Oct 09 PHP
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
Ajax PHP分页演示
Jan 02 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
PHP的单引号和双引号 字符串效率
May 27 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
PHP变量的作用范围实例讲解
Dec 22 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 什么是PEAR?
2009/03/19 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
PHP防盗链代码实例
2014/08/27 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
php可变长参数处理函数详解
2017/02/22 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
JavaScript 数组运用实现代码
2010/04/13 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python访问纯真IP数据库的代码
2011/05/19 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
中级会计职业生涯规划范文
2014/01/16 职场文书
小区消防演习方案
2014/02/21 职场文书
人事部专员岗位职责
2014/03/04 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
解除租赁合同协议书
2016/03/21 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript