Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/mime limit #66

Merged
merged 3 commits into from
Mar 31, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
## CHANGE LOG

### v6.1.8

2014-3-31 issues [#66](https://github.com/qiniu/php-sdk/pull/66)

- 上传策略[支持mimeLimit字段](http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html#put-policy-mime-limit),用于限定上传文件的mimeType。

### v6.1.7

2014-2-19 issues [#64](https://github.com/qiniu/php-sdk/pull/64)
Expand Down
7 changes: 7 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,13 @@ SDK源码地址:<https://github.com/qiniu/php-sdk/tags>
public $Expires; // 可选。默认是 3600 秒
public $PersistentOps; // 可选。
public $PersistentNotifyUrl; // 如果设置了PersistentOps,必须同时设置此项。
public $InsertOnly; // 可选。如果设置为非0值,则无论scope设置为何种形式,都只能以`新增`方式上传,不能覆盖。
public $DetectMime; // 可选。如果设为非0值,则忽略上传端传递的文件MimeType信息,使用七牛服务器侦测内容后的判断结果。
public $FsizeLimit; // 可选。int类型,超过限制大小的上传内容会被判为上传失败,返回413状态码。
public $SaveKey; // 可选。自定义资源名格式。
public $Transform; // 可选。指定资源经过怎样的处理后再保存。
public $FopTimeout; // 可选。int类型,指定transform的超时时间,如果文件处理超过此值,则认为上传失败。
public $MimeLimit; // 可选。限定上传的文件类型。
}

* `scope` 限定客户端的权限。如果 `scope` 是 bucket,则客户端只能新增文件到指定的 bucket,不能修改文件。如果 `scope` 为 bucket:key,则客户端可以修改指定的文件。**注意: key必须采用utf8编码,如使用非utf8编码访问七牛云存储将反馈错误**
Expand Down
5 changes: 5 additions & 0 deletions qiniu/rs.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class Qiniu_RS_PutPolicy
public $PersistentNotifyUrl;
public $Transform;
public $FopTimeout;
public $MimeLimit;

public function __construct($scope)
{
Expand Down Expand Up @@ -114,6 +115,10 @@ public function Token($mac) // => $token
if (!empty($this->FopTimeout)) {
$policy['fopTimeout'] = $this->FopTimeout;
}
if (!empty($this->MimeLimit)) {
$policy['mimeLimit'] = $this->MimeLimit;
}


$b = json_encode($policy);
return Qiniu_SignWithData($mac, $b);
Expand Down
14 changes: 14 additions & 0 deletions tests/IoTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,19 @@ public function testPut_transform() {
$this->assertEquals($ret["mimeType"], "image/png");
var_dump($ret);
}
public function testPut_mimeLimit() {
$key = 'testPut_mimeLimit' . getTid();
$scope = $this->bucket . ':' . $key;
$err = Qiniu_RS_Delete($this->client, $this->bucket, $key);

$putPolicy = new Qiniu_RS_PutPolicy($scope);
$putPolicy->MimeLimit = "image/*";
$upToken = $putPolicy->Token(null);

list($ret, $err) = Qiniu_PutFile($upToken, $key, __file__, null);
$this->assertNull($ret);
$this->assertEquals($err->Err, "limited mimeType: this file type is forbidden to upload");
var_dump($err);
}
}