mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
3.0 KiB
58 lines
3.0 KiB
# BLOB存储文件系统提供程序
|
|
|
|
文件系统存储提供程序用于将BLOB作为文件夹中的标准文件存储在本地文件系统中.
|
|
|
|
> 阅读[BLOB存储文档](Blob-Storing.md)了解如何使用BLOB存储系统. 本文档仅介绍如何为容器配置文件系统.
|
|
|
|
## 介绍
|
|
|
|
使用ABP CLI添加[Volo.Abp.BlobStoring.FileSystem](https://www.nuget.org/packages/Volo.Abp.BlobStoring.FileSystem)NuGet包到你的项目:
|
|
|
|
* 安装 [ABP CLI](https://docs.abp.io/en/abp/latest/CLI), 如果你还没有安装.
|
|
* 在要添加 `Volo.Abp.BlobStoring.FileSystem` 包的 `.csproj` 文件目录打开命令行.
|
|
* 运行 `abp add-package Volo.Abp.BlobStoring.FileSystem` 命令.
|
|
|
|
如果要手动安装,在你的项目中安装 `Volo.Abp.BlobStoring.FileSystem` NuGet包然后将`[DependsOn(typeof(AbpBlobStoringFileSystemModule))]`添加到项目内的[ABP模块](Module-Development-Basics.md)类中.
|
|
|
|
## 配置
|
|
|
|
如同[BLOB存储文档](Blob-Storing.md)所述,配置是在[模块](Module-Development-Basics.md)类的 `ConfigureServices` 方法完成的.
|
|
|
|
**示例: 配置为默认使用文件系统存储提供程序**
|
|
|
|
````csharp
|
|
Configure<AbpBlobStoringOptions>(options =>
|
|
{
|
|
options.Containers.ConfigureDefault(container =>
|
|
{
|
|
container.UseFileSystem(fileSystem =>
|
|
{
|
|
fileSystem.BasePath = "C:\\my-files";
|
|
});
|
|
});
|
|
});
|
|
````
|
|
|
|
`UseFileSystem` 扩展方法用于为容器设置文件系统提供程序并配置文件系统选项.
|
|
|
|
> 参阅[BLOB存储文档](Blob-Storing.md) 学习如何为指定容器配置提供程序.
|
|
|
|
### 选项
|
|
|
|
* **BasePath** (string): 存储BLOB的基本文件夹路径,它是必选的.
|
|
* **AppendContainerNameToBasePath** (bool; 默认: `true`): 指定是否在基本文件夹中创建具有容器名称的文件夹. 如果你在同一个 `BaseFolder` 中存储多个容器,请将其保留为`true`. 如果你不喜欢不必要的更深层次的文件夹,你可以将它设置为 `false`.
|
|
|
|
## 文件路径计算
|
|
|
|
文件系统提供程序在文件夹中组织BLOB文件并实现一些约定. 默认情况下,BLOB文件的完整路径由以下规则确定:
|
|
|
|
* 它以如上所述配置的 `BasePath` 开始.
|
|
* 如果当前租户为 `null`(或容器禁用多租户 - 请参阅[BLOB存储文档](Blob-Storing.md) 了解如何禁用容器的多租户),则追加 `host` 文件夹.
|
|
* 如果当前租户不为 `null`,则追加 `tenants/<tenant-id>` 文件夹.
|
|
* 如果 `AppendContainerNameToBasePath` 为`true`,则追加容器的名称. 如果容器名称包含 `/`,将导致文件夹嵌套.
|
|
* 追加BLOB名称,如果BLOB名称包含 `/` 它创建文件夹. 如果BLOB名称包含 `.` 它将有一个文件扩展名.
|
|
|
|
## 扩展文件系统提供程序
|
|
|
|
* `FileSystemBlobProvider` 是实现文件系统存储的主要服务. 你可以从这个类继承并[覆盖](Customizing-Application-Modules-Overriding-Services.md)方法进行自定义.
|
|
* `IBlobFilePathCalculator` 服务用于计算文件路径. 默认实现是 `DefaultBlobFilePathCalculator` . 如果你想自定义文件路径计算,可以替换/覆盖它. |