Sparkdo.BlobStoring
1.0.2
dotnet add package Sparkdo.BlobStoring --version 1.0.2
NuGet\Install-Package Sparkdo.BlobStoring -Version 1.0.2
<PackageReference Include="Sparkdo.BlobStoring" Version="1.0.2" />
<PackageVersion Include="Sparkdo.BlobStoring" Version="1.0.2" />
<PackageReference Include="Sparkdo.BlobStoring" />
paket add Sparkdo.BlobStoring --version 1.0.2
#r "nuget: Sparkdo.BlobStoring, 1.0.2"
#:package Sparkdo.BlobStoring@1.0.2
#addin nuget:?package=Sparkdo.BlobStoring&version=1.0.2
#tool nuget:?package=Sparkdo.BlobStoring&version=1.0.2
Sparkdo.BlobStoring
Sparkdo BLOB 存储库,提供统一的二进制大对象存储接口和多种存储提供程序实现。
功能特性
- 统一的 BLOB 存储接口:提供一致的 API 来操作各种存储后端
- 多种存储提供程序:支持文件系统、数据库等多种存储方式
- 容器化管理:通过容器概念组织和管理 BLOB 对象
- 多租户支持:为多租户应用提供隔离的存储空间
- 配置灵活:支持基于容器的个性化配置
- 与 Sparkdo 框架无缝集成
安装
<PackageReference Include="Sparkdo.BlobStoring" Version="x.x.x" />
核心组件
IBlobContainer
BLOB 容器接口,定义了基本的 BLOB 操作方法:
SaveAsync(): 保存 BLOB 对象DeleteAsync(): 删除 BLOB 对象ExistsAsync(): 检查 BLOB 对象是否存在GetAsync(): 获取 BLOB 对象GetOrNullAsync(): 获取 BLOB 对象(不存在时返回 null)
BlobContainer
BLOB 容器实现,提供基本的 BLOB 操作功能:
- 支持多租户隔离
- 与具体存储提供程序解耦
- 统一的异常处理机制
IBlobProvider
BLOB 存储提供程序接口,定义了底层存储操作:
SaveAsync(): 保存 BLOB 数据DeleteAsync(): 删除 BLOB 数据ExistsAsync(): 检查 BLOB 是否存在GetOrNullAsync(): 获取 BLOB 数据
BlobProviderBase
BLOB 存储提供程序基类,提供通用实现:
- 统一的参数验证
- 标准化的异常处理
- 可扩展的存储逻辑
配置相关
BlobContainerConfiguration: 容器配置信息IBlobContainerConfigurationProvider: 容器配置提供程序DefaultBlobContainerConfigurationProvider: 默认配置提供程序
命名服务
IBlobNormalizeNamingService: BLOB 命名规范化服务BlobNormalizeNamingService: 默认命名规范化实现
工厂模式
IBlobContainerFactory: BLOB 容器工厂接口BlobContainerFactory: BLOB 容器工厂实现
扩展性
该库提供了完整的 BLOB 存储功能实现,可以通过以下方式扩展:
- 实现自定义的
IBlobProvider来支持新的存储后端 - 通过
IBlobContainerConfigurationProvider自定义容器配置 - 实现
IBlobNormalizeNamingService来改变命名规则 - 创建特定的容器类来封装业务逻辑
代码结构说明
本项目包含以下主要组件:
核心接口
IBlobContainer<TContainer>: 泛型 BLOB 容器接口IBlobContainer: BLOB 容器接口IBlobProvider: BLOB 存储提供程序接口
核心实现
BlobContainer<TContainer>: 泛型 BLOB 容器实现BlobContainer: BLOB 容器实现BlobProviderBase: BLOB 存储提供程序基类
配置
BlobContainerConfiguration: 容器配置信息IBlobContainerConfigurationProvider: 容器配置提供程序接口DefaultBlobContainerConfigurationProvider: 默认配置提供程序实现
命名服务
IBlobNormalizeNamingService: BLOB 命名规范化服务接口BlobNormalizeNamingService: 默认命名规范化实现
工厂
IBlobContainerFactory: BLOB 容器工厂接口BlobContainerFactory: BLOB 容器工厂实现
模块配置
SparkdoBlobStoringModule: 模块配置类
所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.Extensions.Configuration (>= 10.0.5)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.5)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.5)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.5)
- Microsoft.Extensions.Configuration.Json (>= 10.0.5)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.DependencyModel (>= 10.0.5)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.5)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.5)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.5)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Localization (>= 10.0.5)
- Microsoft.Extensions.Logging (>= 10.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Options (>= 10.0.5)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.5)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.5)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Core (>= 1.0.2)
- Sparkdo.MultiTenancy (>= 1.0.2)
- Sparkdo.Threading (>= 1.0.2)
- System.Linq.Dynamic.Core (>= 1.7.1)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Sparkdo.BlobStoring:
| Package | Downloads |
|---|---|
|
Sparkdo.BlobStoring.Aliyun
Sparkdo 阿里云 OSS 存储提供程序,用于将 BLOB 数据存储到阿里云对象存储服务中 |
|
|
Sparkdo.BlobStoring.FileSystem
Sparkdo BLOB 存储库的文件系统提供程序,提供基于本地文件系统的二进制大对象存储实现 |
|
|
Sparkdo.BlobStoring.Tencent
Sparkdo 腾讯云 COS BLOB 存储提供程序,用于在腾讯云对象存储服务中存储和检索二进制大对象 |
|
|
Sparkdo.BlobStoring.Aws
Sparkdo AWS S3 BLOB 存储提供程序,用于在 Amazon S3 云存储中存储和检索二进制大对象 |
|
|
Sparkdo.BlobStoring.Minio
Sparkdo MinIO BLOB 存储提供程序,用于在 MinIO 对象存储中存储和检索二进制大对象 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.2 | 134 | 4/27/2026 |
| 1.0.2-preview.5 | 56 | 4/15/2026 |
| 1.0.2-preview.4 | 84 | 2/8/2026 |
| 1.0.2-preview.3 | 79 | 2/1/2026 |
| 1.0.2-preview.2 | 75 | 1/31/2026 |
| 1.0.2-preview.1 | 184 | 12/4/2025 |
| 1.0.1 | 429 | 11/27/2025 |
| 1.0.0 | 426 | 11/25/2025 |
| 1.0.0-preview.5 | 152 | 10/24/2025 |