mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
优化第三方存储链接生成,更符合接口规范;优化上传配置文件;
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
<form id="app-form" class="layui-form layuimini-form">
|
||||
<form id="app-form" class="layui-form layuimini-form show-type">
|
||||
<input type="hidden" name="group_name" value="upload">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">存储方式</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach ['local_public'=>'本地存储','alioss'=>'阿里云oss','qnoss'=>'七牛云oss','txcos'=>'腾讯云cos'] as $key=>$val}
|
||||
<input type="radio" v-model="upload_type" name="upload_type" lay-filter="upload_type" value="{$key}" title="{$val}" {if $key==sysconfig('upload','upload_type')}checked=""{/if}>
|
||||
<input type="radio" name="upload_type" lay-filter="upload_type" value="{$key}" title="{$val}" {if $key==sysconfig('upload','upload_type')}checked=""{/if}>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'alioss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item alioss" >
|
||||
<label class="layui-form-label required">公钥信息</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_access_key_id" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','alioss_access_key_id')}">
|
||||
@@ -33,7 +33,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'alioss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item alioss" >
|
||||
<label class="layui-form-label required">私钥信息</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_access_key_secret" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','alioss_access_key_secret')}">
|
||||
@@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'alioss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item alioss" >
|
||||
<label class="layui-form-label required">数据中心</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_endpoint" class="layui-input" lay-verify="required" lay-reqtext="请输入数据中心" placeholder="请输入数据中心" value="{:sysconfig('upload','alioss_endpoint')}">
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'alioss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item alioss" >
|
||||
<label class="layui-form-label required">空间名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入空间名称" placeholder="请输入空间名称" value="{:sysconfig('upload','alioss_bucket')}">
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'alioss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item alioss" >
|
||||
<label class="layui-form-label required">访问域名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','alioss_domain')}">
|
||||
@@ -65,7 +65,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'txcos'" v-cloak>
|
||||
<div class="layui-form-item show-type-item txcos" >
|
||||
<label class="layui-form-label required">公钥信息</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="txcos_secret_id" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','txcos_secret_id')}">
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'txcos'" v-cloak>
|
||||
<div class="layui-form-item show-type-item txcos" >
|
||||
<label class="layui-form-label required">私钥信息</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="txcos_secret_key" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','txcos_secret_key')}">
|
||||
@@ -81,7 +81,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'txcos'" v-cloak>
|
||||
<div class="layui-form-item show-type-item txcos" >
|
||||
<label class="layui-form-label required">存储桶地域</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="txcos_region" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶地域" placeholder="请输入存储桶地域" value="{:sysconfig('upload','txcos_region')}">
|
||||
@@ -89,14 +89,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'txcos'" v-cloak>
|
||||
<div class="layui-form-item show-type-item txcos" >
|
||||
<label class="layui-form-label required">存储桶名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="txcos_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶名称" placeholder="请输入存储桶名称" value="{:sysconfig('upload','txcos_bucket')}">
|
||||
<tip>例子:ulthon-admin-1251997243</tip>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" v-if="upload_type == 'txcos'" v-cloak>
|
||||
<div class="layui-form-item show-type-item txcos" >
|
||||
<label class="layui-form-label required">访问域名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="txcos_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','txcos_domain')}">
|
||||
@@ -104,7 +104,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'qnoss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item qnoss" >
|
||||
<label class="layui-form-label required">公钥信息</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qnoss_access_key" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','qnoss_access_key')}">
|
||||
@@ -112,7 +112,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'qnoss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item qnoss" >
|
||||
<label class="layui-form-label required">私钥信息</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qnoss_secret_key" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','qnoss_secret_key')}">
|
||||
@@ -120,7 +120,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'qnoss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item qnoss" >
|
||||
<label class="layui-form-label required">存储空间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qnoss_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶地域" placeholder="请输入存储桶地域" value="{:sysconfig('upload','qnoss_bucket')}">
|
||||
@@ -128,7 +128,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" v-if="upload_type == 'qnoss'" v-cloak>
|
||||
<div class="layui-form-item show-type-item qnoss" >
|
||||
<label class="layui-form-label required">访问域名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qnoss_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','qnoss_domain')}">
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
use app\common\service\AuthService;
|
||||
use think\facade\Cache;
|
||||
use think\facade\Filesystem;
|
||||
use think\facade\Request;
|
||||
use think\route\Url;
|
||||
|
||||
@@ -222,32 +223,11 @@ if (!function_exists('unparse_url')) {
|
||||
}
|
||||
|
||||
|
||||
function build_upload_url($url)
|
||||
function build_upload_url($url, $upload_type = null)
|
||||
{
|
||||
$config = sysconfig('upload');
|
||||
|
||||
|
||||
$upload_type = $config['upload_type'] ?? 'local_public';
|
||||
|
||||
$prefix_url = '';
|
||||
|
||||
switch ($upload_type) {
|
||||
case 'local_public':
|
||||
$prefix_url = Request::domain().'/storage';
|
||||
break;
|
||||
case 'qnoss':
|
||||
$prefix_url = $config['qnoss_domain'];
|
||||
break;
|
||||
case 'alioss':
|
||||
$prefix_url = $config['alioss_domain'];
|
||||
break;
|
||||
case 'txcos':
|
||||
$prefix_url = $config['txcos_domain'];
|
||||
break;
|
||||
|
||||
default:
|
||||
# code...
|
||||
break;
|
||||
if (is_null($upload_type)) {
|
||||
$upload_type = sysconfig('upload', 'upload_type', 'local_public');
|
||||
}
|
||||
return rtrim($prefix_url, '/') . '/' . ltrim($url, '/');
|
||||
return Filesystem::disk($upload_type)->url($url);
|
||||
}
|
||||
|
||||
@@ -50,6 +50,12 @@ class UploadService
|
||||
return $this->validate($file, $allow_ext, $allow_size, true);
|
||||
}
|
||||
|
||||
public function url($save_name)
|
||||
{
|
||||
$url = Filesystem::disk($this->uploadType)->url($save_name);
|
||||
return $url;
|
||||
}
|
||||
|
||||
public function save(File $file)
|
||||
{
|
||||
|
||||
@@ -73,7 +79,7 @@ class UploadService
|
||||
return date('Ymd') . '/' . uniqid();
|
||||
});
|
||||
|
||||
$url = build_upload_url($save_name);
|
||||
$url = $this->url($save_name);
|
||||
|
||||
$model_file->url = $url;
|
||||
$model_file->save_name = $save_name;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
use think\facade\Env;
|
||||
use think\facade\Request;
|
||||
|
||||
return [
|
||||
// 默认磁盘
|
||||
@@ -17,7 +18,7 @@ return [
|
||||
// 磁盘路径
|
||||
'root' => app()->getRootPath() . 'public/storage',
|
||||
// 磁盘路径对应的外部URL路径
|
||||
'url' => '/storage',
|
||||
'url' => Request::domain() . '/storage',
|
||||
// 可见性
|
||||
'visibility' => 'public',
|
||||
],
|
||||
|
||||
@@ -22,4 +22,9 @@ class Alioss extends Driver
|
||||
$config
|
||||
);
|
||||
}
|
||||
|
||||
public function url(string $path): string
|
||||
{
|
||||
return $this->concatPathToUrl(sysconfig('upload', 'alioss_domain'), $path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,5 +16,10 @@ class Qiniu extends Driver
|
||||
sysconfig('upload','qnoss_domain')
|
||||
);
|
||||
}
|
||||
|
||||
public function url(string $path): string
|
||||
{
|
||||
return $this->concatPathToUrl(sysconfig('upload', 'qnoss_domain'), $path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,4 +32,9 @@ class Txcos extends Driver
|
||||
|
||||
return $adapter;
|
||||
}
|
||||
|
||||
public function url(string $path): string
|
||||
{
|
||||
return $this->concatPathToUrl(sysconfig('upload', 'txcos_domain'), $path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,12 @@ define(["jquery", "easy-admin", "vue"], function ($, ea, Vue) {
|
||||
var Controller = {
|
||||
index: function () {
|
||||
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
upload_type: upload_type
|
||||
}
|
||||
});
|
||||
|
||||
$('.show-type-item').hide();
|
||||
$('.show-type-item.' + upload_type).show();
|
||||
form.on("radio(upload_type)", function (data) {
|
||||
app.upload_type = this.value;
|
||||
|
||||
$('.show-type-item').hide();
|
||||
$('.show-type-item.' + this.value).show();
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
|
||||
Reference in New Issue
Block a user