云后台已经内置了OSS前端直传的支持,不过后端的接口需要自行实现。
其中/v1/upload_oss/index/sign是自行实现的后端签名接口。如果需要修改全局配置,请在/core/util/xybuilder/FormBuilder内修改。
## 实例
```
->addFormItem('img', '图片', 'image', '', [
'driver' => 'upload_oss', // 申明使用OSS前端直传
'signUrl' => '/v1/upload_oss/index/sign', // 签名接口地址
'format' => ['jpg','jpeg','png','gif','ico'],
'maxSize' => 512, // KB
])
```
## 签名接口返回数据规范
```
$response = array();
$response['key'] = ''; // 上传目录
$response['policy'] = $base64_policy; // 参照OSS文档
$response['OSSAccessKeyId'] = 'OSSAccessKeyId';
$response['success_action_status'] = 200; // 让服务端返回200,不然,默认会返回204
$response['signature'] = $signature; // 参照OSS文档
$response['host'] = $host; // $host的格式为 'https://' + bucketname + endpoint,或者是您绑定的自定义与域名。
$response['expire'] = $end; // 参照OSS文档设置该policy超时时间. 即这个policy过了这个有效时间,将不能访问。
$response['uniqidName'] = md5(uniqid(time()));
return json_encode(
['code' => 200, 'msg' => '成功', 'data' => [
'params' => $response
]]
);
```