From 88cf25a2dbc64af9700623432c26c6b43c6dd443 Mon Sep 17 00:00:00 2001 From: dtynn Date: Wed, 19 Feb 2014 17:05:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qiniu/io.php | 10 ++++++++++ qiniu/resumable_io.php | 7 +++++++ tests/IoTest.php | 9 +++++++-- tests/RioTest.php | 4 ++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/qiniu/io.php b/qiniu/io.php index 06807fb5..8f003495 100644 --- a/qiniu/io.php +++ b/qiniu/io.php @@ -32,6 +32,11 @@ function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err) if ($putExtra->CheckCrc) { $fields['crc32'] = $putExtra->Crc32; } + if ($putExtra->Params) { + foreach ($putExtra->Params as $k=>$v) { + $fields[$k] = $v; + } + } $files = array(array('file', $fname, $body, $putExtra->MimeType)); @@ -66,6 +71,11 @@ function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $e } $fields['crc32'] = sprintf('%u', $putExtra->Crc32); } + if ($putExtra->Params) { + foreach ($putExtra->Params as $k=>$v) { + $fields[$k] = $v; + } + } $client = new Qiniu_HttpClient; return Qiniu_Client_CallWithForm($client, $QINIU_UP_HOST, $fields, 'multipart/form-data'); diff --git a/qiniu/resumable_io.php b/qiniu/resumable_io.php index 33491ad6..2da79139 100644 --- a/qiniu/resumable_io.php +++ b/qiniu/resumable_io.php @@ -70,6 +70,13 @@ function Qiniu_Rio_Mkfile($self, $host, $key, $fsize, $extra) // => ($putRet, $e $url .= '/mimeType/' . Qiniu_Encode($extra->MimeType); } + if (!empty($extra->Params)) { + foreach ($extra->Params as $k=>$v) { + #$url .= "/" . Qiniu_Encode($k) . "/" . Qiniu_Encode($v); + $url .= "/" . $k . "/" . Qiniu_Encode($v); + } + } + $ctxs = array(); foreach ($extra->Progresses as $prog) { $ctxs []= $prog['ctx']; diff --git a/tests/IoTest.php b/tests/IoTest.php index 488ca0e5..f8510c60 100644 --- a/tests/IoTest.php +++ b/tests/IoTest.php @@ -22,10 +22,12 @@ public function testPutFile() $putPolicy = new Qiniu_RS_PutPolicy($this->bucket); $upToken = $putPolicy->Token(null); $putExtra = new Qiniu_PutExtra(); + $putExtra->Params = array('x:test'=>'test'); $putExtra->CheckCrc = 1; list($ret, $err) = Qiniu_PutFile($upToken, $key, __file__, $putExtra); $this->assertNull($err); $this->assertArrayHasKey('hash', $ret); + $this->assertArrayHasKey('x:test', $ret); var_dump($ret); list($ret, $err) = Qiniu_RS_Stat($this->client, $this->bucket, $key); @@ -43,9 +45,12 @@ public function testPut() $putPolicy = new Qiniu_RS_PutPolicy($this->bucket); $upToken = $putPolicy->Token(null); - list($ret, $err) = Qiniu_Put($upToken, $key, "hello world!", null); + $putExtra = new Qiniu_PutExtra(); + $putExtra->Params = array('x:test'=>'test'); + list($ret, $err) = Qiniu_Put($upToken, $key, "hello world!", $putExtra); $this->assertNull($err); $this->assertArrayHasKey('hash', $ret); + $this->assertArrayHasKey('x:test', $ret); var_dump($ret); list($ret, $err) = Qiniu_RS_Stat($this->client, $this->bucket, $key); @@ -132,7 +137,7 @@ public function testPut_exclusive() $this->assertNull($err); list($ret, $err) = Qiniu_PutFile($upToken, $key, __file__, null); $this->assertNull($ret); - $this->assertEquals($err->Err, 'file exists'); + $this->assertEquals($err->Code, 614); var_dump($err); list($ret, $err) = Qiniu_RS_Stat($this->client, $this->bucket, $key); diff --git a/tests/RioTest.php b/tests/RioTest.php index 1e195b04..28a44e1d 100644 --- a/tests/RioTest.php +++ b/tests/RioTest.php @@ -32,10 +32,12 @@ public function testPut() $putPolicy = new Qiniu_RS_PutPolicy($this->bucket); $upToken = $putPolicy->Token(null); $putExtra = new Qiniu_Rio_PutExtra($this->bucket); + $putExtra->Params = array('x:test'=>'test'); $reader = new MockReader; list($ret, $err) = Qiniu_Rio_Put($upToken, $key, $reader, 5, $putExtra); $this->assertNull($err); $this->assertEquals($ret['hash'], "Fnvgeq9GDVk6Mj0Nsz2gW2S_3LOl"); + $this->assertEquals($ret['x:test'], "test"); var_dump($ret); list($ret, $err) = Qiniu_RS_Stat($this->client, $this->bucket, $key); @@ -54,10 +56,12 @@ public function testLargePut() $putPolicy = new Qiniu_RS_PutPolicy($this->bucket); $upToken = $putPolicy->Token(null); $putExtra = new Qiniu_Rio_PutExtra($this->bucket); + $putExtra->Params = array('x:test'=>'test'); $reader = new MockReader; list($ret, $err) = Qiniu_Rio_Put($upToken, $key, $reader, QINIU_RIO_BLOCK_SIZE + 5, $putExtra); $this->assertNull($err); $this->assertEquals($ret['hash'], "lgQEOCZ8Ievliq8XOfZmWTndgOll"); + $this->assertEquals($ret['x:test'], "test"); var_dump($ret); list($ret, $err) = Qiniu_RS_Stat($this->client, $this->bucket, $key); From 778ad1e0552d0e6e51ca6886f2e63b69c1e86c3d Mon Sep 17 00:00:00 2001 From: dtynn Date: Wed, 19 Feb 2014 17:12:02 +0800 Subject: [PATCH 2/2] CHANGELOG --- CHANGELOG.md | 6 ++++++ qiniu/resumable_io.php | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb32f672..36ff898f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## CHANGE LOG +### v6.1.7 + +2014-2-19 issues [#64](https://github.com/qiniu/php-sdk/pull/64) + +- 修复 PutExtra.Params 无效的问题 + ### v6.1.6 2014-2-17 issues [#62](https://github.com/qiniu/php-sdk/pull/62) diff --git a/qiniu/resumable_io.php b/qiniu/resumable_io.php index 2da79139..6314231f 100644 --- a/qiniu/resumable_io.php +++ b/qiniu/resumable_io.php @@ -72,7 +72,6 @@ function Qiniu_Rio_Mkfile($self, $host, $key, $fsize, $extra) // => ($putRet, $e if (!empty($extra->Params)) { foreach ($extra->Params as $k=>$v) { - #$url .= "/" . Qiniu_Encode($k) . "/" . Qiniu_Encode($v); $url .= "/" . $k . "/" . Qiniu_Encode($v); } }