feat(storage): 上传配置页新增S3与WebDAV表单

This commit is contained in:
augushong
2026-08-20 22:14:26 +08:00
parent f76f832307
commit afe176c6f5

View File

@@ -3,7 +3,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required">存储方式</label> <label class="layui-form-label required">存储方式</label>
<div class="layui-input-block"> <div class="layui-input-block">
{foreach ['local_public'=>'本地存储','alioss'=>'阿里云oss','qnoss'=>'七牛云oss','txcos'=>'腾讯云cos'] as $key=>$val} {foreach ['local_public'=>'本地存储','alioss'=>'阿里云oss','qnoss'=>'七牛云oss','txcos'=>'腾讯云cos','s3'=>'S3存储','webdav'=>'WebDAV'] as $key=>$val}
<input type="radio" 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} {/foreach}
</div> </div>
@@ -149,6 +149,103 @@
</div> </div>
</div> </div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label required">公钥信息</label>
<div class="layui-input-block">
<input type="text" name="s3_access_key" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','s3_access_key')}">
<tip>例子AKIAIOSFODNN7EXAMPLE</tip>
</div>
</div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label required">私钥信息</label>
<div class="layui-input-block">
<input type="text" name="s3_secret_key" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','s3_secret_key')}">
<tip>例子wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</tip>
</div>
</div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label required">地域</label>
<div class="layui-input-block">
<input type="text" name="s3_region" class="layui-input" lay-verify="required" lay-reqtext="请输入地域" placeholder="请输入地域" value="{:sysconfig('upload','s3_region')}">
<tip>例子us-east-1MinIO 可填任意如 us-east-1</tip>
</div>
</div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label required">空间名称</label>
<div class="layui-input-block">
<input type="text" name="s3_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入空间名称" placeholder="请输入空间名称" value="{:sysconfig('upload','s3_bucket')}">
<tip>例子my-bucket</tip>
</div>
</div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label">自定义端点</label>
<div class="layui-input-block">
<input type="text" name="s3_endpoint" class="layui-input" placeholder="请输入自定义端点" value="{:sysconfig('upload','s3_endpoint')}">
<tip>例子http://127.0.0.1:9000使用AWS官方S3时留空填写后兼容MinIO、Cloudflare R2等S3协议服务</tip>
</div>
</div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label">路径风格</label>
<div class="layui-input-block">
{foreach ['0'=>'关闭','1'=>'开启'] as $key=>$val}
<input type="radio" name="s3_path_style" value="{$key}" title="{$val}" {if $key==sysconfig('upload','s3_path_style')}checked="" {/if}>
{/foreach}
<tip>开启后 bucket 在路径中而非域名MinIO/R2 建议开启</tip>
</div>
</div>
<div class="layui-form-item show-type-item s3">
<label class="layui-form-label required">访问域名</label>
<div class="layui-input-block">
<input type="text" name="s3_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','s3_domain')}">
<tip>例子https://cdn.example.com https://bucket.s3.us-east-1.amazonaws.com</tip>
</div>
</div>
<div class="layui-form-item show-type-item webdav">
<label class="layui-form-label required">服务地址</label>
<div class="layui-input-block">
<input type="text" name="webdav_url" class="layui-input" lay-verify="required" lay-reqtext="请输入服务地址" placeholder="请输入服务地址" value="{:sysconfig('upload','webdav_url')}">
<tip>例子https://dav.jianguoyun.com/dav/</tip>
</div>
</div>
<div class="layui-form-item show-type-item webdav">
<label class="layui-form-label required">账户</label>
<div class="layui-input-block">
<input type="text" name="webdav_username" class="layui-input" lay-verify="required" lay-reqtext="请输入账户" placeholder="请输入账户" value="{:sysconfig('upload','webdav_username')}">
</div>
</div>
<div class="layui-form-item show-type-item webdav">
<label class="layui-form-label required">密码</label>
<div class="layui-input-block">
<input type="text" name="webdav_password" class="layui-input" lay-verify="required" lay-reqtext="请输入密码" placeholder="请输入密码" value="{:sysconfig('upload','webdav_password')}">
<tip>坚果云等平台需使用应用密码</tip>
</div>
</div>
<div class="layui-form-item show-type-item webdav">
<label class="layui-form-label">存储前缀</label>
<div class="layui-input-block">
<input type="text" name="webdav_prefix" class="layui-input" placeholder="请输入存储前缀" value="{:sysconfig('upload','webdav_prefix')}">
<tip>例子ulthon_admin文件在WebDAV服务中的子目录</tip>
</div>
</div>
<div class="layui-form-item show-type-item webdav">
<label class="layui-form-label required">访问域名</label>
<div class="layui-input-block">
<input type="text" name="webdav_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','webdav_domain')}">
<tip>例子https://example.com/dav</tip>
</div>
</div>
<div class="hr-line"></div> <div class="hr-line"></div>
<div class="layui-form-item text-center"> <div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit="system.config/save" data-refresh="false">确认</button> <button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit="system.config/save" data-refresh="false">确认</button>