1. 问题
OSS PHP-SDK 手册中给出使用 listObjects
函数获取某一 Bucket 下文件列表的方法,如下(摘自 OSS PHP-SDK 文档):
$prefix = 'dir/';
$delimiter = '/';
$nextMarker = '';
$maxkeys = 30;
while (true) {
$options = array(
'delimiter' => $delimiter,
'prefix' => $prefix,
'max-keys' => $maxkeys,
'marker' => $nextMarker,
);
var_dump($options);
try {
$listObjectInfo = $ossClient->listObjects($bucket, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
// 得到nextMarker,从上一次listObjects读到的最后一个文件的下一个文件开始继续获取文件列表
$nextMarker = $listObjectInfo->getNextMarker();
$listObject = $listObjectInfo->getObjectList();
$listPrefix = $listObjectInfo->getPrefixList();
var_dump($listObject); // 这里手册中写的是输出 count($listObject),以下同理
var_dump($listPrefix);
if ($nextMarker === '') {
break;
}
}
这段代码的执行结果并没有返回我最开始想象中的文件名称、大小之类的数组,而是在浏览器输出了一些对象,那么这里该如何转换成我们需要的数据格式呢?此外,$options
数组中的 delimiter
,marker
键值对到底有什么作用呢?
2. 返回值
通过