12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- require_once("http.php");
- define('Qiniu_RSF_EOF', 'EOF');
- /**
- * 1. 首次请求 marker = ""
- * 2. 无论 err 值如何,均应该先看 items 是否有内容
- * 3. 如果后续没有更多数据,err 返回 EOF,markerOut 返回 ""(但不通过该特征来判断是否结束)
- */
- function Qiniu_RSF_ListPrefix(
- $self, $bucket, $prefix = '', $marker = '', $limit = 0) // => ($items, $markerOut, $err)
- {
- global $QINIU_RSF_HOST;
- $query = array('bucket' => $bucket);
- if (!empty($prefix)) {
- $query['prefix'] = $prefix;
- }
- if (!empty($marker)) {
- $query['marker'] = $marker;
- }
- if (!empty($limit)) {
- $query['limit'] = $limit;
- }
- $url = $QINIU_RSF_HOST . '/list?' . http_build_query($query);
- list($ret, $err) = Qiniu_Client_Call($self, $url);
- if ($err !== null) {
- return array(null, '', $err);
- }
- $items = $ret['items'];
- if (empty($ret['marker'])) {
- $markerOut = '';
- $err = Qiniu_RSF_EOF;
- } else {
- $markerOut = $ret['marker'];
- }
- return array($items, $markerOut, $err);
- }
|