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中显示数组与对象的实现代码
Apr 18 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
PHP循环结构实例讲解
Feb 10 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
php实现数据库的增删改查
Feb 26 PHP
mac os快速切换多个PHP版本的方法
Mar 07 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 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无限遍历文件夹示例分享
2014/03/04 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现字符串匹配算法代码示例
2017/12/05 Python
python实现贪吃蛇小游戏
2020/03/21 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
公司成立感言
2014/01/11 职场文书
安全生产计划书
2014/05/04 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
村干部任职承诺书
2015/01/21 职场文书
病房管理制度范本
2015/08/06 职场文书
任命书格式范文
2015/09/22 职场文书