From 019c5c347f4f8808195a9d70645e8a9f6869c9cc Mon Sep 17 00:00:00 2001 From: ShiYu Date: Wed, 21 May 2025 23:49:05 +0800 Subject: [PATCH] feat(storage): add support for Tencent Cloud COS --- Extensions/ServiceCollectionExtensions.cs | 1 + Foxel.csproj | 1 + Models/DataBase/Picture.cs | 1 + Services/StorageProviderFactory.cs | 3 +++ View/src/config/routeConfig.tsx | 11 --------- View/src/pages/settings/SystemConfig.tsx | 29 +++++++++++++++++++++-- View/src/pages/upload/Index.tsx | 23 ------------------ 7 files changed, 33 insertions(+), 36 deletions(-) delete mode 100644 View/src/pages/upload/Index.tsx diff --git a/Extensions/ServiceCollectionExtensions.cs b/Extensions/ServiceCollectionExtensions.cs index 8e34997..353203c 100644 --- a/Extensions/ServiceCollectionExtensions.cs +++ b/Extensions/ServiceCollectionExtensions.cs @@ -24,6 +24,7 @@ public static class ServiceCollectionExtensions services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); } diff --git a/Foxel.csproj b/Foxel.csproj index 42cfa59..a479dbd 100644 --- a/Foxel.csproj +++ b/Foxel.csproj @@ -21,6 +21,7 @@ + diff --git a/Models/DataBase/Picture.cs b/Models/DataBase/Picture.cs index fbc8db7..63ec599 100644 --- a/Models/DataBase/Picture.cs +++ b/Models/DataBase/Picture.cs @@ -10,6 +10,7 @@ public enum StorageType Local = 0, Telegram = 1, S3 = 2, + Cos = 3, } public class Picture : BaseModel diff --git a/Services/StorageProviderFactory.cs b/Services/StorageProviderFactory.cs index 0c81624..32cc90e 100644 --- a/Services/StorageProviderFactory.cs +++ b/Services/StorageProviderFactory.cs @@ -1,12 +1,14 @@ using Foxel.Models.DataBase; using Foxel.Services.Interface; using Foxel.Services.StorageProvider; +using Pgvector.EntityFrameworkCore; namespace Foxel.Services; public class StorageProviderFactory( LocalStorageProvider localStorageProvider, TelegramStorageProvider telegramStorageProvider, + CosStorageProvider cosStorageProvider, S3StorageProvider s3StorageProvider) : IStorageProviderFactory { public IStorageProvider GetProvider(StorageType storageType) @@ -16,6 +18,7 @@ public class StorageProviderFactory( StorageType.Local => localStorageProvider, StorageType.Telegram => telegramStorageProvider, StorageType.S3 => s3StorageProvider, + StorageType.Cos => cosStorageProvider, _ => throw new ArgumentException($"不支持的存储类型: {storageType}") }; } diff --git a/View/src/config/routeConfig.tsx b/View/src/config/routeConfig.tsx index bc39c7c..de51962 100644 --- a/View/src/config/routeConfig.tsx +++ b/View/src/config/routeConfig.tsx @@ -12,7 +12,6 @@ import AllImages from '../pages/allImages/Index'; import Albums from '../pages/albums/Index'; import AlbumDetail from '../pages/albumDetail/Index'; import Favorites from '../pages/favorites/Index'; -import Upload from '../pages/upload/Index'; import Settings from '../pages/settings/Index'; import BackgroundTasks from '../pages/backgroundTasks/Index'; import PixHub from '../pages/pixHub/Index'; @@ -111,16 +110,6 @@ const routes: RouteConfig[] = [ title: '设置' } }, - { - path: 'upload', - key: 'upload', - label: '上传', - element: , - hideInMenu: true, - breadcrumb: { - title: '上传' - } - }, ]; export default routes; diff --git a/View/src/pages/settings/SystemConfig.tsx b/View/src/pages/settings/SystemConfig.tsx index 4b75d61..f3f70f5 100644 --- a/View/src/pages/settings/SystemConfig.tsx +++ b/View/src/pages/settings/SystemConfig.tsx @@ -85,8 +85,9 @@ const SystemConfig: React.FC = () => { // 存储类型选项 const storageOptions = [ { value: 'Local', label: '本地存储', icon: }, - { value: 'Telegram', label: 'Telegram存储', icon: }, - { value: 'S3', label: 'S3兼容存储', icon: }, + { value: 'Telegram', label: 'Telegram 频道', icon: }, + { value: 'S3', label: '亚马逊 S3', icon: }, + { value: 'Cos', label: '腾讯云 COS', icon: }, ]; useEffect(() => { @@ -292,6 +293,30 @@ const SystemConfig: React.FC = () => { isMobile={isMobile} /> )} + + {storageType === 'Cos' && ( + + )} )} diff --git a/View/src/pages/upload/Index.tsx b/View/src/pages/upload/Index.tsx deleted file mode 100644 index ef3f808..0000000 --- a/View/src/pages/upload/Index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Typography } from 'antd'; - -const { Title } = Typography; - -function Upload() { - return ( -
- 上传图片 - {/* 上传表单 */} -
- ); -} - -export default Upload;