php实现阿里云OSS下载目录文件并打包
阿里云OSS很方便,官方提供乐api也很强大,但是无法满足特别的需求,比方说批量下载阿里云OSS的多个文件及目录,批量打包目录等,这些功能需要使用一些基础的api进行开发
在阿里云OSS中目录就是Object,下载目录必须要查看目录有哪些文件
利用官方自带的listObjects这个api可以实现查看目录文件及子目录的功能
ossClient->listObjects($bucket, array( 'max-keys' => "1000",//设置分页的页容量 'prefix' => "img/2019/8/12/",//指定下一级文件 'delimiter' => "/",//跳出递归循环,只去指定目录下的文件。使用它时 prefix要以/结尾 'marker' => ""//获取下一页的起始点,它的下一项 ));通过上面这个api可以获取分页大小下的目录文件路径
获取路径后就可以调用阿里云OSS的下载对象接口getObject了
try { $_content = $this->ossClient->getObject($bucket, $object); $_localpath = dirname($localfilepath);//本地路径 if (! is_dir($_localpath)) { mkdir($_localpath, 0777, true); } return file_put_contents($localfilepath, $_content); } catch (\Plugin\OSS\Core\OssException $e) { print $e->getMessage(); return false; }下载完后既可以打包了
/*压缩多级目录 $openFile:目录句柄 $zipObj:Zip对象 $sourceAbso:源文件夹路径 */ function createZip($openFile,$zipObj,$sourceAbso,$newRelat = '') { while(($file = readdir($openFile)) != false) { if($file=="." || $file=="..") continue; /*源目录...
点击查看剩余70%
网友评论0