php实现批量下载百度云盘文件例子分享

php实现批量下载百度云盘文件例子分享

本文使用百度开放云的PHP SDK实现批量下载百度云盘的文件,需要的朋友可以参考下。

百度开放云PhpSDK下载地址:http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/web%E5%BA%94%E7%9

4%A8%E6%8E%A5%E5%85%A5/SDK

实例代码:

代码如下:

<?php

/**

* Author: hankcs

* Date : 14-3-29

* Time : 下午10:29

*/

ini_set("max_execution_time", 36000);

require_once '../bcs.class.php';

require_once '../krumo/class.krumo.php';

$host = 'bcs.duapp.com';

$ak = '你的公钥';

$sk = '你的私钥';

$bucket = '要下载的bucket名称';

$baidu_bcs = new BaiduBCS ( $ak, $sk, $host );

$response = json_decode($baidu_bcs->list_object ( $bucket, array('start' => 0,'limit' => 1024,) )->body);

$downloaded_size = 0;

while($downloaded_size < $response->object_total)

{

krumo($response);

// 下载它们

foreach($response->object_list as $object)

{

if(!$object->is_dir)

{

mk_dir('.'.$object->parent_dir);

$result = $baidu_bcs->get_object ( $bucket, $object->object, array ("fileWriteTo" => '.'.$object->object ) );

}

}

$downloaded_size += count($response->object_list);

$response = json_decode($baidu_bcs->list_object ( $bucket, array('start' => $downloaded_size,'limit' => 1024,) )->body);

}

function mk_dir($dir, $mode = 0755)

{

if (is_dir($dir) || @mkdir($dir,$mode)) return true;

if (!mk_dir(dirname($dir),$mode)) return false;

return @mkdir($dir,$mode);

}