AI代码生成工具
This commit is contained in:
112
app/Enum/OssDriverEnum.php
Normal file
112
app/Enum/OssDriverEnum.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enum;
|
||||
|
||||
/**
|
||||
* OSS 存储驱动枚举:管理端卡片展示与上传分发共用
|
||||
*/
|
||||
enum OssDriverEnum: string
|
||||
{
|
||||
case Local = 'local';
|
||||
case Aliyun = 'aliyun';
|
||||
case Qcloud = 'qcloud';
|
||||
case Qiniu = 'qiniu';
|
||||
case Huawei = 'huawei';
|
||||
case Aws = 'aws';
|
||||
case Minio = 'minio';
|
||||
case Baidu = 'baidu';
|
||||
|
||||
/**
|
||||
* 驱动编码(与库表 driver 一致)
|
||||
*/
|
||||
public function code(): string
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 中文展示名
|
||||
*/
|
||||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Local => '本地存储',
|
||||
self::Aliyun => '阿里云 OSS',
|
||||
self::Qcloud => '腾讯云 COS',
|
||||
self::Qiniu => '七牛云',
|
||||
self::Huawei => '华为云 OBS',
|
||||
self::Aws => 'AWS S3',
|
||||
self::Minio => 'MinIO',
|
||||
self::Baidu => '百度云 BOS',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 卡片说明文案
|
||||
*/
|
||||
public function description(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Local => '文件保存到应用服务器本地磁盘',
|
||||
self::Aliyun => '阿里云对象存储 OSS',
|
||||
self::Qcloud => '腾讯云对象存储 COS',
|
||||
self::Qiniu => '七牛云对象存储 Kodo',
|
||||
self::Huawei => '华为云对象存储 OBS',
|
||||
self::Aws => '亚马逊 S3 对象存储',
|
||||
self::Minio => 'S3 兼容的私有化对象存储',
|
||||
self::Baidu => '百度智能云对象存储 BOS',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 前端卡片图标(iconify)
|
||||
*/
|
||||
public function icon(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Local => 'lucide:hard-drive',
|
||||
self::Aliyun => 'simple-icons:alibabadotcom',
|
||||
self::Qcloud => 'simple-icons:tencentqq',
|
||||
self::Qiniu => 'lucide:cloud',
|
||||
self::Huawei => 'simple-icons:huawei',
|
||||
self::Aws => 'simple-icons:amazonaws',
|
||||
self::Minio => 'simple-icons:minio',
|
||||
self::Baidu => 'simple-icons:baidu',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否需要 AccessKey / SecretKey
|
||||
*/
|
||||
public function needsSecret(): bool
|
||||
{
|
||||
return $this !== self::Local;
|
||||
}
|
||||
|
||||
/**
|
||||
* 前端驱动选项列表(含图标,供卡片展示)
|
||||
*/
|
||||
public static function options(): array
|
||||
{
|
||||
$list = [];
|
||||
foreach (self::cases() as $case) {
|
||||
$list[] = [
|
||||
'code' => $case->code(),
|
||||
'name' => $case->label(),
|
||||
'label' => $case->label(),
|
||||
'description' => $case->description(),
|
||||
'icon' => $case->icon(),
|
||||
'needs_secret' => $case->needsSecret() ? 1 : 0,
|
||||
];
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验驱动编码是否合法
|
||||
*/
|
||||
public static function isValid(string $code): bool
|
||||
{
|
||||
return self::tryFrom($code) !== null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user