项目

微服务解决方案:BLOB 存储

您必须拥有 ABP Business 或更高版本的许可证才能创建微服务解决方案。

本文档解释了如何在微服务解决方案中存储 BLOB(二进制大型对象)。在分布式系统中存储文件、图像、视频和其他大型对象是常见需求。您可以在 BLOB 存储系统 文档中了解更多关于 BLOB 存储的信息。

在微服务解决方案模板中,数据库提供程序 用于在数据库中存储 BLOB。Volo.Abp.BlobStoring.Database.EntityFrameworkCoreVolo.Abp.BlobStoring.Database.MongoDB 包提供了在数据库中存储和检索 BLOB 的必要实现。此设置已集成到微服务解决方案模板中,并在所有相关项目中使用。您可以在相关项目的 appsettings.json 文件中更改数据库配置。默认配置针对 SQL Server 如下:

"AbpBlobStoring": "Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=MyProjectName_BlobStoring; TrustServerCertificate=true"

之后,您可以使用 IBlobContainerIBlobContainer<T> 服务来存储和检索 BLOB。以下是一个存储 BLOB 的示例:

public class MyService : ITransientDependency
{
    private readonly IBlobContainer _blobContainer;

    public MyService(IBlobContainer blobContainer)
    {
        _blobContainer = blobContainer;
    }

    public async Task SaveBytesAsync(byte[] bytes)
    {
        await _blobContainer.SaveAsync("my-blob-1", bytes);
    }

    public async Task<byte[]> GetBytesAsync()
    {
        return await _blobContainer.GetAllBytesOrNullAsync("my-blob-1");
    }
}

文件管理 模块是可选的,可以在创建解决方案的过程中添加。它提供了一个用于管理文件夹和文件的用户界面。您可以在 文件管理 文档中了解更多关于该模块的信息。

文件管理


在本文档中