# object-stor4net **Repository Path**: haven5/object-stor4net ## Basic Information - **Project Name**: object-stor4net - **Description**: No description available - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-11 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: NetCore, 对象存储, oss ## README # ObjectStor4Net ## 介绍 ObjectStor4Net 是一个基于 .NET 的对象存储系统,实现了类似 Amazon S3 的对象存储服务。该系统提供完整的对象存储功能,包括存储桶管理、文件对象操作等核心功能。 ## 主要特性 - **完整的对象存储功能**:支持存储桶的创建、查询、删除,以及文件对象的上传、下载、删除、列表查询等操作 - **多客户端支持**:提供 Web API 接口和 Windows 桌面客户端 - **身份认证**:集成 JWT 认证机制,确保 API 访问安全 - **数据持久化**:基于 SqlSugar ORM 实现数据持久化存储 - **Docker 支持**:支持容器化部署 ## 软件架构 项目采用经典的分层架构设计: - **ObjectStor4Net.Core** - 核心业务层 - 实体类:BucketEntity(存储桶)、FileObjectEntity(文件对象) - 服务类:BucketService(存储桶服务)、FileObjectService(文件对象服务)、FileStorageService(文件存储服务) - 数据访问:SqlSugarRepository、SqlsugarSetup - **ObjectStor4Net.Application** - 应用服务层 - 系统服务:SystemService、SystemAppService - DTO 映射:Mapper - **ObjectStor4Net.Web.Core** - Web API 核心 - JWT 认证处理器 - 启动配置 - Docker Compose 配置 - **ObjectStor4Net.Web.Entry** - Web API 入口 - 程序主入口 - 单文件发布配置 - **WinFormClient** - Windows 桌面客户端 - 上传、下载、删除文件 - 存储桶管理 - 对象列表查询 ## 安装教程 ### 环境要求 - .NET 6.0 或更高版本 - SQL Server/MySQL/SQLite 等数据库(通过 SqlSugar 支持多种数据库) ### 安装步骤 1. 克隆仓库: ```bash git clone https://gitee.com/haven5/object-stor4net.git ``` 2. 进入项目目录: ```bash cd object-stor4net/src/netcore ``` 3. 还原依赖: ```bash dotnet restore ``` 4. 配置数据库连接(编辑 appsettings.json 中的数据库连接字符串) 5. 构建项目: ```bash dotnet build ``` ## 使用说明 ### 启动 Web API 服务 ```bash cd ObjectStor4Net.Web.Entry dotnet run ``` API 服务默认运行在 `http://localhost:5000` ### 使用 WinForm 客户端 ```bash cd WinFormClient dotnet run ``` ### API 接口说明 #### 存储桶管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/Bucket/list | 获取存储桶列表 | | PUT | /api/Bucket | 创建存储桶 | | GET | /api/Bucket/{bucketName} | 获取存储桶信息 | | DELETE | /api/Bucket/{bucketName} | 删除存储桶 | #### 文件对象管理 | 方法 | 路径 | 说明 | |------|------|------| | PUT | /api/Objects/{bucketName}/{*objectName} | 上传文件对象 | | GET | /api/Objects/{bucketName}/{*objectName} | 下载文件对象 | | DELETE | /api/Objects/{bucketName}/{*objectName} | 删除文件对象 | | HEAD | /api/Objects/{bucketName}/{*objectName} | 获取文件对象元数据 | | GET | /api/Objects/{bucketName} | 列出文件对象 | | POST | /api/Objects/{bucketName} | 批量删除文件对象 | ### 使用示例 #### 创建存储桶 ```bash curl -X PUT http://localhost:5000/api/Bucket -d "bucketName=my-bucket" ``` #### 上传文件 ```bash curl -X PUT http://localhost:5000/api/Objects/my-bucket/my-file.txt --data-binary @my-file.txt ``` #### 列出对象 ```bash curl http://localhost:5000/api/Objects/my-bucket ``` ## 项目结构 ``` object-stor4net/ ├── src/netcore/ │ ├── ObjectStor4Net.Core/ # 核心业务层 │ │ ├── Entity/ # 实体类 │ │ ├── Service/ # 服务类 │ │ ├── SqlSugarRepository.cs # 数据访问仓储 │ │ └── SqlsugarSetup.cs # 数据库配置 │ ├── ObjectStor4Net.Application/ # 应用服务层 │ │ ├── System/ # 系统服务 │ │ └── applicationsettings.json │ ├── ObjectStor4Net.Web.Core/ # Web API 核心 │ │ ├── Handers/ # 认证处理器 │ │ ├── Startup.cs # 启动配置 │ │ └── docker-compose.yml │ ├── ObjectStor4Net.Web.Entry/ # Web 入口 │ │ ├── Program.cs │ │ ├── appsettings.json │ │ └── SingleFilePublish.cs │ └── WinFormClient/ # Windows 客户端 │ ├── FrmMain.cs │ └── ObjectStorClient.cs ├── .gitee/ # Gitee 配置 └── README.md ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 许可证 本项目采用 MIT 许可证开源。