Eaf.BlobStoring
9.4.6
Prefix Reserved
dotnet add package Eaf.BlobStoring --version 9.4.6
NuGet\Install-Package Eaf.BlobStoring -Version 9.4.6
<PackageReference Include="Eaf.BlobStoring" Version="9.4.6" />
<PackageVersion Include="Eaf.BlobStoring" Version="9.4.6" />
<PackageReference Include="Eaf.BlobStoring" />
paket add Eaf.BlobStoring --version 9.4.6
#r "nuget: Eaf.BlobStoring, 9.4.6"
#:package Eaf.BlobStoring@9.4.6
#addin nuget:?package=Eaf.BlobStoring&version=9.4.6
#tool nuget:?package=Eaf.BlobStoring&version=9.4.6
Eaf.BlobStoring
Módulo de armazenamento de BLOBs do Enterprise Application Foundation (EAF).
Este módulo implementa provedores de armazenamento de BLOBs compatíveis com a API IBlobContainer / IBlobContainerFactory do ASP.NET Boilerplate (ABP), oferecendo suporte nativo a FileSystem, Azure Blob Storage e AWS S3 (ou serviços compatíveis com S3).
Provedores suportados
FileSystemBlobProvider: salva os BLOBs em disco, com isolamento por tenant e proteção contra path traversal.AzureBlobProvider: salva os BLOBs no Azure Blob Storage, utilizando o SDKAzure.Storage.Blobs.AwsS3BlobClient: salva os BLOBs no AWS S3, utilizando o SDKAWSSDK.S3.EafCloudBlobProvider: provedor genérico de nuvem que seleciona automaticamente entre Azure e AWS de acordo com a configuraçãoCloudProvider.
Configuração
[DependsOn(typeof(EafBlobStoringModule))]
public class MeuModulo : AbpModule
{
public override void PreInitialize()
{
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(FileSystemBlobProvider);
Configuration.Modules.EafBlobStoring().FileSystemBasePath = @"C:\EAF\Blobs";
// Ou para Azure:
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(AzureBlobProvider);
Configuration.Modules.EafBlobStoring().AzureConnectionString = "UseDevelopmentStorage=true";
Configuration.Modules.EafBlobStoring().AzureContainerName = "eaf-blobs";
Configuration.Modules.EafBlobStoring().AzureCreateContainerIfNotExists = true;
// Ou para AWS S3:
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(EafCloudBlobProvider);
Configuration.Modules.EafBlobStoring().CloudProvider = "Aws";
Configuration.Modules.EafBlobStoring().AwsAccessKeyId = "AKIA...";
Configuration.Modules.EafBlobStoring().AwsSecretAccessKey = "...";
Configuration.Modules.EafBlobStoring().AwsRegion = "us-east-1";
Configuration.Modules.EafBlobStoring().AwsBucketName = "eaf-blobs";
Configuration.Modules.EafBlobStoring().AwsCreateBucketIfNotExists = true;
// Ou para MinIO / LocalStack (S3-compatível):
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(EafCloudBlobProvider);
Configuration.Modules.EafBlobStoring().CloudProvider = "Aws";
Configuration.Modules.EafBlobStoring().AwsServiceUrl = "http://localhost:9000";
Configuration.Modules.EafBlobStoring().AwsForcePathStyle = true;
Configuration.Modules.EafBlobStoring().AwsAccessKeyId = "minioadmin";
Configuration.Modules.EafBlobStoring().AwsSecretAccessKey = "minioadmin";
Configuration.Modules.EafBlobStoring().AwsBucketName = "eaf-blobs";
}
}
Atenção: nunca armazene credenciais no código-fonte. Prefira variáveis de ambiente, AWS IAM roles ou gerenciadores de secrets como o
Eaf.KeyVault.
Uso
public class MinhaAppService : IApplicationService
{
private readonly IBlobContainer _blobContainer;
public MinhaAppService(IBlobContainer blobContainer)
{
_blobContainer = blobContainer;
}
public async Task SalvarAsync(string nome, byte[] bytes)
{
await _blobContainer.SaveAsync(nome, bytes);
}
}
Eaf.BlobStoring
Blob storage module for the Enterprise Application Foundation (EAF).
This module implements BLOB storage providers compatible with the ASP.NET Boilerplate (ABP) IBlobContainer / IBlobContainerFactory API, with built-in support for FileSystem, Azure Blob Storage and AWS S3 (or S3-compatible services).
Supported providers
FileSystemBlobProvider: stores BLOBs on disk, with tenant isolation and path traversal protection.AzureBlobProvider: stores BLOBs in Azure Blob Storage using theAzure.Storage.BlobsSDK.AwsS3BlobClient: stores BLOBs in AWS S3 using theAWSSDK.S3SDK.EafCloudBlobProvider: generic cloud provider that automatically selects Azure or AWS based on theCloudProviderconfiguration.
Configuration
[DependsOn(typeof(EafBlobStoringModule))]
public class MyModule : AbpModule
{
public override void PreInitialize()
{
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(FileSystemBlobProvider);
Configuration.Modules.EafBlobStoring().FileSystemBasePath = @"C:\EAF\Blobs";
// Or for Azure:
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(AzureBlobProvider);
Configuration.Modules.EafBlobStoring().AzureConnectionString = "UseDevelopmentStorage=true";
Configuration.Modules.EafBlobStoring().AzureContainerName = "eaf-blobs";
Configuration.Modules.EafBlobStoring().AzureCreateContainerIfNotExists = true;
// Or for AWS S3:
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(EafCloudBlobProvider);
Configuration.Modules.EafBlobStoring().CloudProvider = "Aws";
Configuration.Modules.EafBlobStoring().AwsAccessKeyId = "AKIA...";
Configuration.Modules.EafBlobStoring().AwsSecretAccessKey = "...";
Configuration.Modules.EafBlobStoring().AwsRegion = "us-east-1";
Configuration.Modules.EafBlobStoring().AwsBucketName = "eaf-blobs";
Configuration.Modules.EafBlobStoring().AwsCreateBucketIfNotExists = true;
// Or for MinIO / LocalStack (S3-compatible):
Configuration.Modules.EafBlobStoring().DefaultProvider = typeof(EafCloudBlobProvider);
Configuration.Modules.EafBlobStoring().CloudProvider = "Aws";
Configuration.Modules.EafBlobStoring().AwsServiceUrl = "http://localhost:9000";
Configuration.Modules.EafBlobStoring().AwsForcePathStyle = true;
Configuration.Modules.EafBlobStoring().AwsAccessKeyId = "minioadmin";
Configuration.Modules.EafBlobStoring().AwsSecretAccessKey = "minioadmin";
Configuration.Modules.EafBlobStoring().AwsBucketName = "eaf-blobs";
}
}
Warning: never store credentials in source code. Prefer environment variables, AWS IAM roles or secret managers such as
Eaf.KeyVault.
Usage
public class MyAppService : IApplicationService
{
private readonly IBlobContainer _blobContainer;
public MyAppService(IBlobContainer blobContainer)
{
_blobContainer = blobContainer;
}
public async Task SaveAsync(string name, byte[] bytes)
{
await _blobContainer.SaveAsync(name, bytes);
}
}
| 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
- Abp (>= 10.5.0)
- Abp.BlobStoring (>= 10.5.0)
- AWSSDK.S3 (>= 4.0.101.4)
- Azure.Storage.Blobs (>= 12.29.1)
- MessagePack (>= 2.5.301)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- System.Security.Cryptography.Xml (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 9.4.6 | 46 | 8/18/2026 |