Skip to content

Commit 0492bb7

Browse files
committed
mv rsf class to func
1 parent 1a2e949 commit 0492bb7

File tree

2 files changed

+33
-39
lines changed

2 files changed

+33
-39
lines changed

qiniu/rsf.php

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,36 @@
22

33
require_once("http.php");
44

5-
// ----------------------------------------------------------
6-
// class Qiniu_RSF_Client
7-
8-
class Qiniu_RSF_Client
5+
/**
6+
* 1. 首次请求 marker = ""
7+
* 2. 无论 err 值如何,均应该先看 items 是否有内容
8+
* 3. 如果后续没有更多数据,err 返回 EOF,markerOut 返回 ""(但不通过该特征来判断是否结束)
9+
*/
10+
function Qiniu_RSF_ListPrefix($self, $bucket, $prefix, $marker, $limit) // => ($items, $markerOut, $err)
911
{
10-
public $Conn;
11-
12-
public function __construct($mac)
13-
{
14-
$this->Conn = new Qiniu_MacHttpClient($mac);
12+
global $QINIU_RSF_HOST;
13+
$query = array("bucket" => $bucket);
14+
if (!empty($prefix)) {
15+
$query["prefix"] = $prefix;
16+
}
17+
if (!empty($marker)) {
18+
$query["marker"] = $marker;
19+
}
20+
if (!empty($limit)) {
21+
$query["limit"] = $limit;
1522
}
1623

17-
/**
18-
* 1. 首次请求 marker = ""
19-
* 2. 无论 err 值如何,均应该先看 entries 是否有内容
20-
* 3. 如果后续没有更多数据,err 返回 EOF,markerOut 返回 ""(但不通过该特征来判断是否结束)
21-
*/
22-
public function ListPrefix($bucket, $prefix, $marker, $limit) // => ($ret => array('items' => items, 'marker': markerOut), $err)
23-
{
24-
global $QINIU_RSF_HOST;
25-
$query = array("bucket" => $bucket);
26-
if (!empty($prefix)) {
27-
$query["prefix"] = $prefix;
28-
}
29-
if (!empty($marker)) {
30-
$query["marker"] = $marker;
31-
}
32-
if (!empty($limit)) {
33-
$query["limit"] = $limit;
34-
}
24+
$url = $QINIU_RSF_HOST . "/list?" . http_build_query($query);
25+
list($ret, $err) = Qiniu_Client_Call($self, $url);
3526

36-
$url = $QINIU_RSF_HOST . "/list?" . http_build_query($query);
37-
list($ret, $err) = Qiniu_Client_Call($this->Conn, $url);
38-
if (!isset($ret['marker'])) {
39-
$err = new Qiniu_Error(400, 'EOF');
40-
}
41-
return array($ret, $err);
27+
$items = $ret['items'];
28+
if (!isset($ret['marker'])) {
29+
$markerOut = '';
30+
$err = new Qiniu_Error(400, 'EOF');
31+
} else {
32+
$markerOut = $ret['marker'];
4233
}
4334

35+
return array($items, $markerOut, $err);
4436
}
37+

tests/RsfTest.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,22 @@ class RsfTest extends PHPUnit_Framework_TestCase
1010
public function setUp()
1111
{
1212
initKeys();
13-
$this->client = new Qiniu_RSF_Client(null);
13+
$this->client = new Qiniu_MacHttpClient(null);
1414
$this->bucket = getenv('QINIU_BUCKET_NAME');
1515
$this->key = getenv('QINIU_KEY_NAME');
1616
}
1717

1818
public function testListPrefix()
1919
{
2020
echo $this->bucket;
21-
list($ret, $err) = $this->client->ListPrefix($this->bucket, null, null, null);
21+
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, null, null, null);
2222
$this->assertEquals($err->Err, 'EOF');
23+
$this->assertEquals($markerOut, '');
2324

24-
list($ret, $err) = $this->client->ListPrefix($this->bucket, null, null, 1);
25-
$this->assertArrayHasKey('marker', $ret);
25+
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, null, null, 1);
26+
$this->assertFalse($markerOut === '');
2627

27-
list($ret, $err) = $this->client->ListPrefix($this->bucket, $this->key, null, null);
28-
$this->assertLessThanOrEqual(1, count($ret['items']));
28+
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, $this->key, null, null);
29+
$this->assertLessThanOrEqual(1, count($items));
2930
}
3031
}

0 commit comments

Comments
 (0)