云后臺已經內置了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
]]
);
```