Skip to content

Commit d9f1b82

Browse files
committed
Merge pull request #18 from xushiwei/feature/rsf_batch
rsf+batch
2 parents 8c82c31 + bd68a1d commit d9f1b82

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

qiniu/rs.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ function Qiniu_RS_Batch($self, $ops) // => ($data, $error)
190190

191191
function Qiniu_RS_BatchStat($self, $entryPaths)
192192
{
193+
$params = array();
193194
foreach ($entryPaths as $entryPath) {
194195
$params[] = Qiniu_RS_URIStat($entryPath->bucket, $entryPath->key);
195196
}
@@ -198,6 +199,7 @@ function Qiniu_RS_BatchStat($self, $entryPaths)
198199

199200
function Qiniu_RS_BatchDelete($self, $entryPaths)
200201
{
202+
$params = array();
201203
foreach ($entryPaths as $entryPath) {
202204
$params[] = Qiniu_RS_URIDelete($entryPath->bucket, $entryPath->key);
203205
}
@@ -206,16 +208,22 @@ function Qiniu_RS_BatchDelete($self, $entryPaths)
206208

207209
function Qiniu_RS_BatchMove($self, $entryPairs)
208210
{
211+
$params = array();
209212
foreach ($entryPairs as $entryPair) {
210-
$params[] = Qiniu_RS_URIMove($entryPair->src->bucket, $entryPair->src->key, $entryPair->dest->bucket, $entryPair->dest->key);
213+
$src = $entryPair->src;
214+
$dest = $entryPair->dest;
215+
$params[] = Qiniu_RS_URIMove($src->bucket, $src->key, $dest->bucket, $dest->key);
211216
}
212217
return Qiniu_RS_Batch($self, $params);
213218
}
214219

215220
function Qiniu_RS_BatchCopy($self, $entryPairs)
216221
{
222+
$params = array();
217223
foreach ($entryPairs as $entryPair) {
218-
$params[] = Qiniu_RS_URICopy($entryPair->src->bucket, $entryPair->src->key, $entryPair->dest->bucket, $entryPair->dest->key);
224+
$src = $entryPair->src;
225+
$dest = $entryPair->dest;
226+
$params[] = Qiniu_RS_URICopy($src->bucket, $src->key, $dest->bucket, $dest->key);
219227
}
220228
return Qiniu_RS_Batch($self, $params);
221229
}

qiniu/rsf.php

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,42 @@
22

33
require_once("http.php");
44

5+
define('Qiniu_RSF_EOF', 'EOF');
6+
57
/**
68
* 1. 首次请求 marker = ""
79
* 2. 无论 err 值如何,均应该先看 items 是否有内容
810
* 3. 如果后续没有更多数据,err 返回 EOF,markerOut 返回 ""(但不通过该特征来判断是否结束)
911
*/
10-
function Qiniu_RSF_ListPrefix($self, $bucket, $prefix, $marker, $limit) // => ($items, $markerOut, $err)
12+
function Qiniu_RSF_ListPrefix(
13+
$self, $bucket, $prefix = '', $marker = '', $limit = 0) // => ($items, $markerOut, $err)
1114
{
1215
global $QINIU_RSF_HOST;
13-
$query = array("bucket" => $bucket);
16+
17+
$query = array('bucket' => $bucket);
1418
if (!empty($prefix)) {
15-
$query["prefix"] = $prefix;
19+
$query['prefix'] = $prefix;
1620
}
1721
if (!empty($marker)) {
18-
$query["marker"] = $marker;
22+
$query['marker'] = $marker;
1923
}
2024
if (!empty($limit)) {
21-
$query["limit"] = $limit;
25+
$query['limit'] = $limit;
2226
}
2327

24-
$url = $QINIU_RSF_HOST . "/list?" . http_build_query($query);
28+
$url = $QINIU_RSF_HOST . '/list?' . http_build_query($query);
2529
list($ret, $err) = Qiniu_Client_Call($self, $url);
30+
if ($err !== null) {
31+
return array(null, '', $err);
32+
}
2633

2734
$items = $ret['items'];
28-
if (!isset($ret['marker'])) {
35+
if (empty($ret['marker'])) {
2936
$markerOut = '';
30-
$err = new Qiniu_Error(400, 'EOF');
37+
$err = Qiniu_RSF_EOF;
3138
} else {
3239
$markerOut = $ret['marker'];
3340
}
34-
3541
return array($items, $markerOut, $err);
3642
}
3743

tests/RsfTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ public function setUp()
1818
public function testListPrefix()
1919
{
2020
echo $this->bucket;
21-
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, null, null, null);
22-
$this->assertEquals($err->Err, 'EOF');
21+
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket);
22+
$this->assertEquals($err, Qiniu_RSF_EOF);
2323
$this->assertEquals($markerOut, '');
2424

25-
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, null, null, 1);
25+
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, '', '', 1);
2626
$this->assertFalse($markerOut === '');
2727

28-
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, $this->key, null, null);
28+
list($items, $markerOut, $err) = Qiniu_RSF_ListPrefix($this->client, $this->bucket, $this->key);
2929
$this->assertLessThanOrEqual(1, count($items));
3030
}
3131
}

0 commit comments

Comments
 (0)