isMethod('post')) { $data = $request->post(); if(!_empty_(_array_key($data, 'bucket', ''))){ // 使用 preg_match 来匹配 if (preg_match('/.*-\d{10}$/', trim($data['bucket']))) { return $this->response()->error('存储空间名称 Bucket配置错误,请看红色注意事项'); } } SiteUtils::forget_config_data(); if ($data['ossType'] == 'cosv5') { $configData = [ 'bucket' => $data['bucket'] ?? '', 'region' => $data['region'] ?? '', 'appId' => $data['appId'] ?? '', 'secretId' => $data['secretId'] ?? '', 'secretKey' => $data['secretKey'] ?? '', 'domain' => rtrim(_array_key($data, 'domain', ''), '/') ]; Settings::set('cosv5', $configData, true); } Settings::set('ossType', 'cosv5', true); Settings::set('image_unused_keep_days', $data['image_unused_keep_days'], true); Settings::set('chat_expire_days', $data['chat_expire_days'], true); _update_env([ "COSV5_APP_ID" => $data['appId'] ?? '', "COSV5_SECRET_ID" => $data['secretId'] ?? '', "COSV5_SECRET_KEY" => $data['secretKey'] ?? '', "COSV5_BUCKET" => $data['bucket'] ?? '', "COSV5_REGION" => $data['region'] ?? '', "COSV5_CDN" => str_replace(['https://', 'http://'], '', $data['domain'] ?? ''), ], ['COSV5_TOKEN', 'COSV5_TIMEOUT', 'COSV5_CONNECT_TIMEOUT', 'COSV5_SCHEME', 'COSV5_READ_FROM_CDN', 'COSV5_CDN_KEY', 'COSV5_ENCRYPT']); $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1; Settings::set('__global_config_version__', $__global_config_version__); GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]); return $this->response()->success('保存成功!')->refresh(); } $form = new Form(); $form->html(function () { return ''; }, '一、存储配置'); $form->html(function () { return '
这里解释一下为什么只能配置腾讯云cos,因为系统越来越复杂,涉及到图片处理,视频截屏,图片清理等等功能,另外经过对比腾讯云比七牛啥的都便宜,所以只适配腾讯云cos,不会安排其他云对象存储或者本地
'; }, ''); $form->radio('ossType')->help('点击查看配置教程') ->when('cosv5', function (Form $form) { $cosv5 = Settings::get('cosv5', []); $form->text('bucket', '存储空间名称 Bucket')->help('注意:这里不要填-appid,点击查看教程')->default($cosv5['bucket'] ?? ''); $form->text('region', '所属地域 Region')->default($cosv5['region'] ?? ''); $form->text('appId', 'AppId')->default($cosv5['appId'] ?? ''); $form->text('secretId', 'SecretId')->help('查看说明')->default($cosv5['secretId'] ?? ''); $form->password('secretKey', 'SecretKey')->default($cosv5['secretKey'] ?? ''); $form->url('domain', 'Domain')->help('请补全http:// 或 https://,例如:http://img.minisns.cn')->default($cosv5['domain'] ?? ''); }) ->options([ 'cosv5' => '腾讯云cos', ]) ->default(Settings::get('ossType', 'cosv5')); $form->divider(); $form->html(function () { return ''; }, '二、策略配置'); $form->html(function () { return '
两种类型的未被引用附件:
1、用户上传图片后,没有后续动作,比如发布笔记,发表评论,更新资料,提交反馈,提交举报等。
2、笔记,评论等被主动删除后,图片也会成为未被引用
'; }, ''); $res3 = __system__paycode__tip__(3); Tooltip::make('.mini_global_admin_open_not_support_tip') ->bottom() ->title($res3['tip']); $form->number('image_unused_keep_days', '附件未被引用几天后清理')->help($res3['text'])->default(Settings::get('image_unused_keep_days', 10)); $form->number('chat_expire_days', '聊天记录过期时间(天)')->help($res3['text'].'默认三个月,则程序会自动删除三个月之前的聊天记录,并清理掉附件')->default(Settings::get('chat_expire_days', 90)); $form->divider(); $form->html(function () { return '以下若需要文件上传到服务器验证,统一上传到网站的public目录'; }, ''); $form->html(function () { return ''; }, '三、微信小程序域名白名单'); $form->html(function () { return ''; }, '配置位置'); $cosv5 = Settings::get('cosv5', []); $domains = env('APP_URL').'
'.$cosv5['domain'].'
'.'https://'.$cosv5['bucket'].'-'.$cosv5['appId'].'.cos.'.$cosv5['region'].'.myqcloud.com'.($cosv5['domain'] == 'https://img.mini.minisns.cn' ? '' : '
https://img.mini.minisns.cn').'
https://thirdwx.qlogo.cn
https://open.weixin.qq.com
'; $form->html(function () use ($domains){ return '
'.$domains.'
'; }, 'request合法域名'); $form->html(function () use ($domains) { return '
wss://'.get_mini_domain().'
'; }, 'socket合法域名'); $form->html(function () use ($domains){ return '
'.$domains.'
'; }, 'uploadFile合法域名'); $form->html(function () use ($domains){ return '
'.$domains.'
'; }, 'downloadFile合法域名'); $form->html(function () use ($domains){ return '
'.str_replace('https://', 'udp://', $domains).'
'; }, 'udp合法域名'); $form->html(function () use ($domains){ return '
'.str_replace('https://', 'tcp://', $domains).'
'; }, 'tcp合法域名'); $form->html(function () { return ''; }, '四、微信小程序业务域名'); $form->html(function () use ($domains){ return '
'.env('APP_URL').'
'.Settings::get('app_h5_home', '').'
'; }, '业务域名'); $form->html(function () { return ''; }, '五、公众号后台配置'); $form->html(function () { return ''; }, '配置位置'); $form->html(function () use ($domains){ return '
'.env('APP_URL').'
'.Settings::get('app_h5_home', '').'
'; }, '业务域名'); $form->html(function () use ($domains){ return '
'.env('APP_URL').'
'.Settings::get('app_h5_home', '').'
'; }, 'JS接口安全域名'); $form->html(function () use ($domains){ return '
'.env('APP_URL').'
'; }, '网页授权域名'); $form->html(function () { return ''; }, '配置位置'); $form->html(function () use ($domains){ return '
自己的服务器ip
'; }, 'IP白名单'); return $content->title('上传设置') ->body( <<{$form->render()} HTML ); } }