Sparkdo.BlobStoring
1.0.1
See the version list below for details.
dotnet add package Sparkdo.BlobStoring --version 1.0.1
NuGet\Install-Package Sparkdo.BlobStoring -Version 1.0.1
<PackageReference Include="Sparkdo.BlobStoring" Version="1.0.1" />
<PackageVersion Include="Sparkdo.BlobStoring" Version="1.0.1" />
<PackageReference Include="Sparkdo.BlobStoring" />
paket add Sparkdo.BlobStoring --version 1.0.1
#r "nuget: Sparkdo.BlobStoring, 1.0.1"
#:package Sparkdo.BlobStoring@1.0.1
#addin nuget:?package=Sparkdo.BlobStoring&version=1.0.1
#tool nuget:?package=Sparkdo.BlobStoring&version=1.0.1
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 | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Core (>= 1.0.1)
- Sparkdo.MultiTenancy (>= 1.0.1)
- Sparkdo.Threading (>= 1.0.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
- System.Runtime.Loader (>= 4.3.0)
- System.Text.Json (>= 10.0.0)
-
net10.0
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Core (>= 1.0.1)
- Sparkdo.MultiTenancy (>= 1.0.1)
- Sparkdo.Threading (>= 1.0.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Sparkdo.BlobStoring:
| Package | Downloads |
|---|---|
|
Sparkdo.BlobStoring.FileSystem
Sparkdo BLOB 存储库的文件系统提供程序,提供基于本地文件系统的二进制大对象存储实现 |
|
|
Sparkdo.BlobStoring.Minio
Sparkdo MinIO BLOB 存储提供程序,用于在 MinIO 对象存储中存储和检索二进制大对象 |
|
|
Sparkdo.BlobStoring.Aliyun
Sparkdo 阿里云 OSS 存储提供程序,用于将 BLOB 数据存储到阿里云对象存储服务中 |
|
|
Sparkdo.BlobStoring.Tencent
Sparkdo 腾讯云 COS BLOB 存储提供程序,用于在腾讯云对象存储服务中存储和检索二进制大对象 |
|
|
Sparkdo.BlobStoring.Aws
Sparkdo AWS S3 BLOB 存储提供程序,用于在 Amazon S3 云存储中存储和检索二进制大对象 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.2-preview.1 | 0 | 12/4/2025 |
| 1.0.1 | 340 | 11/27/2025 |
| 1.0.0 | 333 | 11/25/2025 |
| 1.0.0-preview.5 | 102 | 10/24/2025 |