php实现阿里云OSS下载目录文件并打包

php实现阿里云OSS下载目录文件并打包

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%

{{collectdata}}

网友评论0