Dignite.Abp.FileStoring.Imaging
10.0.0-rc.27
dotnet add package Dignite.Abp.FileStoring.Imaging --version 10.0.0-rc.27
NuGet\Install-Package Dignite.Abp.FileStoring.Imaging -Version 10.0.0-rc.27
<PackageReference Include="Dignite.Abp.FileStoring.Imaging" Version="10.0.0-rc.27" />
<PackageVersion Include="Dignite.Abp.FileStoring.Imaging" Version="10.0.0-rc.27" />
<PackageReference Include="Dignite.Abp.FileStoring.Imaging" />
paket add Dignite.Abp.FileStoring.Imaging --version 10.0.0-rc.27
#r "nuget: Dignite.Abp.FileStoring.Imaging, 10.0.0-rc.27"
#:package Dignite.Abp.FileStoring.Imaging@10.0.0-rc.27
#addin nuget:?package=Dignite.Abp.FileStoring.Imaging&version=10.0.0-rc.27&prerelease
#tool nuget:?package=Dignite.Abp.FileStoring.Imaging&version=10.0.0-rc.27&prerelease
Dignite Abp File Storing
Part of dignite-projects/abp-modules — see the repository README for the other modules, and CONTRIBUTING.md for the build, versioning, and release process shared across them. Formerly developed at
dignite-projects/abp-file-storing; no package ID changed in the move.
A thin enhancement layer on ABP BlobStoring: per-container upload rules, and one service that applies them and stores the result.
core/src/Dignite.Abp.FileStoring— theIFileHandlerpipeline (FileSizeLimitHandler,FileTypeCheckHandler),IFileStorer, content-based MIME detection.core/src/Dignite.Abp.FileStoring.Imaging—ImageResizeHandler, an optional upload-time resize.
There is no metadata layer, API or UI here. An application keeps its own file records and authorization and
uses IFileStorer to put bytes into a container. (File Explorer, the DDD file browser that used to ship from
this folder, moved to the site repository as part of Site in 10.0.0-rc.25 — see
docs/core-only-decision.md.)
Usage
Depend on DigniteAbpFileStoringModule (or DigniteAbpFileStoringImagingModule) and configure a container:
Configure<AbpBlobStoringOptions>(options =>
{
options.Containers.Configure<AttachmentsContainer>(container =>
{
container.UseFileSystem(fs => fs.BasePath = "...");
container.AddFileSizeLimitHandler(h => h.MaxFileSize = 20); // MB
container.AddFileTypeCheckHandler(h => h.AllowedFileTypeNames = [".pdf", ".png", ".jpg"]);
});
});
Store an upload:
var stored = await _fileStorer.StoreAsync<AttachmentsContainer>(file.FileName, file.GetStream(), cancellationToken);
try
{
await _attachmentRepository.InsertAsync(
new Attachment(GuidGenerator.Create(), ticketId, stored.BlobName, file.FileName, stored.MimeType, stored.Size, stored.Hash),
autoSave: true,
cancellationToken);
}
catch
{
await _fileStorer.DeleteAsync<AttachmentsContainer>(stored.BlobName);
throw;
}
What StoreAsync guarantees:
- The size limit binds while reading. The upload is copied into a buffer that is never allowed past the
container's
AddFileSizeLimitHandlerlimit (100 MB,FileConsts.DefaultMaxFileSizeInBytes, when none is set). Still enforce a request-body limit at the HTTP layer. - The MIME type comes from the content.
IMimeTypeDetectorreads the file's signature; a file whose content contradicts its extension is rejected (Dignite.Abp.File:0005). The API does not accept a MIME type from the caller. - Handlers run in the configured order on the buffered content;
StoredFileInfodescribes what was stored after them (a resized image reports its resized size and hash). - No partial blobs. A save that fails after writing is followed by a delete of that blob. A name collision
(
BlobAlreadyExistsException, only possible with a customIBlobNameGenerator) is never "compensated" by deleting the existing blob.
Dedup by content is up to you: compare StoredFileInfo.Hash (SHA-256, upper-case hex) with your own records.
| 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
- Dignite.Abp.FileStoring (>= 10.0.0-rc.27)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Volo.Abp.BlobStoring (>= 10.5.0)
- Volo.Abp.Core (>= 10.5.0)
- Volo.Abp.EventBus.Abstractions (>= 10.5.0)
- Volo.Abp.Imaging.Abstractions (>= 10.5.0)
- Volo.Abp.Imaging.ImageSharp (>= 10.5.0)
- Volo.Abp.Localization (>= 10.5.0)
- Volo.Abp.MultiTenancy.Abstractions (>= 10.5.0)
- Volo.Abp.VirtualFileSystem (>= 10.5.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Dignite.Abp.FileStoring.Imaging:
| Package | Downloads |
|---|---|
|
Dignite.FileExplorer.Application
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0-rc.27 | 59 | 10/10/2026 |
| 10.0.0-rc.26 | 54 | 10/10/2026 |
| 10.0.0-rc.25 | 58 | 10/10/2026 |
| 10.0.0-rc.24 | 56 | 10/9/2026 |
| 10.0.0-rc.23 | 58 | 10/9/2026 |
| 10.0.0-rc.22 | 59 | 10/9/2026 |
| 10.0.0-rc.21 | 59 | 10/7/2026 |
| 10.0.0-rc.20 | 65 | 10/7/2026 |
| 10.0.0-rc.19 | 62 | 10/4/2026 |
| 10.0.0-rc.18 | 62 | 10/4/2026 |
| 10.0.0-rc.17 | 91 | 9/23/2026 |
| 10.0.0-rc.16 | 90 | 9/6/2026 |
| 10.0.0-rc.15 | 83 | 9/5/2026 |
| 10.0.0-rc.14 | 90 | 9/4/2026 |
| 10.0.0-rc.13 | 80 | 9/3/2026 |
| 10.0.0-rc.11 | 84 | 8/30/2026 |
| 10.0.0-rc.7 | 79 | 8/30/2026 |
| 10.0.0-rc.6 | 83 | 8/30/2026 |