public function uploadDir($bucket, $prefix, $localDirectory, $exclude = '.|..|.svn|.git', $recursive = false, $checkMd5 = true)
{
$retArray = array("succeededList" => array(), "failedList" => array());
if (empty($bucket)) {
throw new OssException("parameter error, bucket is empty");
}
if (!is_string($prefix)) {
throw new OssException("parameter error, prefix is not string");
}
if (empty($localDirectory)) {
throw new OssException("parameter error, localDirectory is empty");
}
$directory = $localDirectory;
$directory = OssUtil::encodePath($directory);
//判断是否目录
if (!is_dir($directory)) {
throw new OssException('parameter error: ' . $directory . ' is not a directory, please check it');
}
//read directory
$file_list_array = OssUtil::readDir($directory, $exclude, $recursive);
if (!$file_list_array) {
throw new OssException($directory . ' is empty...');
}
foreach ($file_list_array as $k => $item) {
if (is_dir($item['path'])) {
continue;
}
$options = array(self::OSS_PART_SIZE => self::OSS_MIN_PART_SIZE, self::OSS_CHECK_MD5 => $checkMd5);
$realObject = (!empty($prefix) ? $prefix . '/' : '') . $item['file'];
try {
$this->multiuploadFile($bucket, $realObject, $item['path'], $options);
$retArray["succeededList"][] = $realObject;
} catch (OssException $e) {
$retArray["failedList"][$realObject] = $e->getMessage();
}
}
return $retArray;
}