文件管理模块 (专业版)
使用本模块需持有 ABP团队版或更高级别许可
该模块用于通过分层文件夹结构上传、下载和组织文件,兼容多租户架构,并可设置租户的总存储空间限制。
本模块基于 BLOB存储系统,可使用不同存储提供程序保存文件内容。
模块功能概览请参阅 模块介绍页面。
安装指南
文件管理模块未预装在 启动模板 中,需手动安装。可通过以下两种方式安装模块:
1. 使用 ABP CLI
通过 add-module 命令可快速添加模块至解决方案,详情参考 CLI文档。安装文件管理模块的命令如下:
abp add-module Volo.FileManagement
2. 手动安装
若解决方案结构经过定制化修改,建议采用手动安装方式:
- 在对应项目中添加以下NuGet包引用(例如将
Volo.FileManagement.Application添加到 {项目名}.Application.csproj):
<PackageReference Include="Volo.FileManagement.Application" Version="x.x.x" />
- 在项目模块类(如
{项目名}ApplicationModule)的DependsOn特性中添加依赖:
[DependsOn(
//...
typeof(FileManagementApplicationModule)
)]
若使用Blazor Web应用,需将
Volo.FileManagement.Blazor.WebAssembly包添加到 {项目名}.Blazor.Client.csproj,并将Volo.Chat.FileManagement.Blazor.Server包添加到 {项目名}.Blazor.csproj
- 数据库配置:
- EntityFrameworkCore 项目:在
DbContext的OnModelCreating方法中添加配置 - MongoDB 项目:在
DbContext的CreateModel方法中添加配置
- EntityFrameworkCore 项目:在
builder.ConfigureFileManagement();
使用EntityFrameworkCore时,请记得创建并执行数据库迁移
- 前端依赖:在
package.json中添加npm包
"dependencies": {
...
"@volo/file-management": "^2.9.0"
}
添加包后需在
Web项目目录执行abp install-libs命令
Angular UI
用户界面包含在 @volo/abp.ng.file-management 库的 FileManagementModule 模块中。请参考 功能库文档 了解在Angular应用中的安装配置方法。
Blazor & Blazor Server
ASP NET Core存在已知问题,需将 HubOptions 的 DisableImplicitFromServicesParameters 设为 true:
Configure<HubOptions>(options =>
{
options.DisableImplicitFromServicesParameters = true;
});
配置BLOB存储提供程序
文件管理模块基于 BLOB存储系统,使用 FileManagementContainer 作为BLOB容器。需为其配置存储提供程序:
Configure<AbpBlobStoringOptions>(options =>
{
options.Containers.Configure<FileManagementContainer>(c =>
{
c.UseDatabase(); // 也可使用FileSystem或Azure等提供程序
});
});
有关存储提供程序的详细用法,请参阅 BLOB存储提供程序文档。
模块包
本模块遵循 模块开发最佳实践指南,由多个NuGet和NPM包组成。可通过 文件管理模块包列表页面 查看相关包列表。
用户界面
菜单项
文件管理模块在"主菜单"的"管理"项下添加:
- 文件管理:查看文件夹结构和文件列表
菜单项名称常量定义于 FileManagementMenuNames 类。
页面功能
文件管理页面
用于创建文件夹、上传文件及查看存储的文件列表。
文件夹操作
- 点击左上角
创建文件夹在当前目录创建新文件夹 - 通过左侧树形视图移动文件夹位置
- 通过表格中
操作→重命名修改文件夹名称
文件操作
- 点击左上角
上传文件通过弹窗选择本地文件上传至当前目录 - 通过表格中
操作→移动调整文件位置 - 通过表格中
操作→重命名修改文件名称
数据种子
本模块不包含初始数据种子。
内部结构
领域层
聚合根
遵循 实体最佳实践与规范:
DirectoryDescriptor(聚合根):表示文件夹FileDescriptor(聚合根):表示文件
仓储
遵循 仓储最佳实践与规范,定义以下自定义仓储:
IDirectoryDescriptorRepositoryIFileDescriptorRepository
领域服务
遵循 领域服务最佳实践与规范:
DirectoryManager:管理文件夹的创建、重命名、移动和删除FileManager:管理文件的创建、重命名、移动和删除
设置管理
本模块未定义任何设置项。
功能开关
支持按租户启用/禁用模块,并可设置各租户的最大存储空间。完整功能定义参见 FileManagementFeatures 类成员。
应用层
应用服务
DirectoryDescriptorAppService(实现IDirectoryDescriptorAppService):处理文件管理UI的业务用例FileDescriptorAppService(实现IFileDescriptorAppService):处理文件管理UI的业务用例
数据库支持
通用配置
表/集合前缀与架构
默认使用 Fm 前缀,可通过 FileManagementDbProperties 类的静态属性调整前缀或架构名。
连接字符串
默认使用 FileManagement 连接字符串名称,未定义时将回退至 Default 连接字符串。详情参考 连接字符串文档。
Entity Framework Core
数据表
- FmDirectoryDescriptors
- FmFileDescriptors
MongoDB
集合
- FmDirectoryDescriptors
- FmFileDescriptors
权限控制
所有权限定义请参考 FileManagementPermissions 类成员。
分布式事件
本模块未定义额外分布式事件,请参考 标准分布式事件。
抠丁客



