如果需要将空间中的多个文件,打包成一个压缩文件,该怎么做,不需要自己本地打包好再上传,七牛已经为我们提供了这项服务。

命令: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和base64_urlSafeEncode参见七牛php-sdk使用-文档处理,这里就不在帖代码了。

需要注意的一点是,调用persistentOps的时候,第一个参数必须为bucket内一个有效存在的资源的名称,没有实际作用,但必须指定

七牛php-sdk使用-在线打包的更多相关文章

  1. 基于七牛Python SDK写的一个批量下载脚本

    前言 上一篇基于七牛Python SDK写的一个同步脚本所写的脚本只支持上传,不支持文件下载. 虽然这个需求不太强烈,但有可能有人(在备份.迁移时)需要,而官方有没提供对应的工具,所以我就把这个功能也 ...

  2. 基于七牛Python SDK写的一个同步脚本

    需求背景 最近刚搭了个markdown静态博客,想把博客的图片放到云存储中. 经过调研觉得七牛可以满足我个人的需求,就选它了. 博客要引用图片就要先将图片上传到云上. 虽然七牛网站后台可以上传文件,但 ...

  3. Async Cow Python 七牛异步SDK

    # Async Cow Python 七牛异步SDK > gitee链接 >github链接本SDK基于官方SDK改造而成,但又对其进行了进一步封装,简化了相关操作例如:- 1.不需要使用 ...

  4. 七牛php sdk 生成上传凭证时出现 undefined function Qiniu_SetKeys()

    将qiniu/http.php文件改名即可,原因是xampp等集成环境会安装pear存在了http.php

  5. 七牛用户搭建c# sdk的图文讲解

    Qiniu 七牛问题解答 问题描写叙述:非常多客户属于小白类型. 可是请不要随便喷七牛的文档站.由于须要一点http的专业知识才干了解七牛的api文档.如今我给大家弄个c# sdk的搭建步骤 问题解决 ...

  6. 七牛php-sdk使用

    使用七牛云存储服务有一年多了,大部分功能基于其PHP-SDK来做开发,现对sdk的一些功能做一个总结. 一.资源上传 上传资源文件到七牛空间的不同实现方法 二.文档转换 介绍如何使用七牛以及七牛第三方 ...

  7. UEditor上传图片到七牛C#(后端实现)

    由于个人网站空间存储有所以选择将图片统一存储到七牛上,理由很简单 1  免费10G 的容量  ,对个人网站足够用 2  规范的开发者文档 和完善的sdk(几乎所有热门语言sdk) 整体思路 图片上传七 ...

  8. ***七牛跨域上传图片JS SDK

    SDK: http://developer.qiniu.com/code/v6/sdk/javascript.html#upload 上传 在页面中引入 plupload,plupload.full. ...

  9. yii2.0 集合七牛SDK 上传图片到第三方

    首先,请用composer下载七牛phpSDK (具体参考官方文档) composer require qiniu/php-sdk 注册七牛账号 获取 AK SK(密匙) ,创建资源对象 获取doma ...

随机推荐

  1. iOS 跳转到 App Store 下载评分页面

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  2. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

  3. MongoDB的CURD命令

    1.启动客户端 在MongDB服务成功启动的情况下,打开cmd,在MongDB的bin文件目录下执行MongDB命令 可以看到MongDB版本号3.0.7与默认连接的数据库test.test数据库是系 ...

  4. python每天进步一点点

    1. apply, 可以调用函数和参数,如apply(Fun,(xxx,xxx)) 2. Format, 很好处理字符串的对齐命名,其他进制,打印等. 3. input(),接受输入 4. str() ...

  5. python for循环巧妙运用(迭代、列表生成式)

    200 ? "200px" : this.width)!important;} --> 介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,di ...

  6. Noip2016换教室(期望+DP)

    Description 题目链接:Luogu Solution 这题结合了DP和概率与期望,其实只要稍微知道什么是期望就可以了, 状态的构造很关键,\(F[i][j][0/1]\)表示已经到第\(i\ ...

  7. Spring事务管理总结

    本文是对慕课网上"搞定SSM开发"路径的系列课程的总结,详细的项目文档和课程总结放在github上了.点击查看 本文对应慕课网上课程Spring事务管理,详情可查看:点我 1: 概 ...

  8. Find the Maximum sum

    Given an array of n elements.Find the maximum sum when the array elements will be arranged in such w ...

  9. bzoj 4345: [POI2016]Korale

    Description 有n个带标号的珠子,第i个珠子的价值为a[i].现在你可以选择若干个珠子组成项链(也可以一个都不选),项链的价值为所有珠子的价值和.现在给所有可能的项链排序,先按权值从小到大排 ...

  10. bzoj 3142: [Hnoi2013]数列

    Description 小T最近在学着买股票,他得到内部消息:F公司的股票将会疯涨.股票每天的价格已知是正整数,并且由于客观上的原因,最多只能为N.在疯涨的K天中小T观察到:除第一天外每天的股价都比前 ...