UltronFramework.FileManager.FileSystem
10.0.10
dotnet add package UltronFramework.FileManager.FileSystem --version 10.0.10
NuGet\Install-Package UltronFramework.FileManager.FileSystem -Version 10.0.10
<PackageReference Include="UltronFramework.FileManager.FileSystem" Version="10.0.10" />
<PackageVersion Include="UltronFramework.FileManager.FileSystem" Version="10.0.10" />
<PackageReference Include="UltronFramework.FileManager.FileSystem" />
paket add UltronFramework.FileManager.FileSystem --version 10.0.10
#r "nuget: UltronFramework.FileManager.FileSystem, 10.0.10"
#:package UltronFramework.FileManager.FileSystem@10.0.10
#addin nuget:?package=UltronFramework.FileManager.FileSystem&version=10.0.10
#tool nuget:?package=UltronFramework.FileManager.FileSystem&version=10.0.10
UltronFramework.FileManager.FileSystem
Implementación de IFileManager sobre el sistema de archivos local con generación de URLs HTTP públicas. Mantiene la misma superficie de uso que UltronFramework.FileManager.AzCloud, guardando los archivos en una raíz configurable y organizándolos por contenedor.
Configuración
using UltronFramework.FileManager.FileSystem.Extensions;
builder.Services.UseFileManagerFileSystem(options =>
{
options.RootPath = builder.Configuration["FileStorage:RootPath"]!;
options.RequestPath = builder.Configuration["FileStorage:RequestPath"] ?? "/files";
options.PublicBaseUrl = builder.Configuration["FileStorage:PublicBaseUrl"];
});
WebApplication app = builder.Build();
// Si existe un proxy inverso, debe ejecutarse después de UseForwardedHeaders.
app.UseFileManagerFileSystemFiles();
{
"FileStorage": {
"RootPath": "D:\\PosCloud\\Files",
"RequestPath": "/files",
"PublicBaseUrl": "https://api.example.com"
}
}
RootPathes exclusivamente la ubicación física de almacenamiento.RequestPathes la ruta pública que sirve el API.PublicBaseUrles la URL externa del API, sin incluirRequestPath. En producción se recomienda configurarla explícitamente; si se omite, se deriva de la petición HTTP actual.PublicCacheDurationcontrola el encabezado público de caché y tiene un valor predeterminado de siete días.
Una llamada como SaveFileAsync("documents", "invoices/1.pdf", ...) devuelve, por ejemplo, https://api.example.com/files/documents/invoices/1.pdf en UriCloud.
Los archivos se persisten con el siguiente layout:
{RootPath}/{containerName}/{relativePath}
El ContentType se guarda en un archivo lateral .contenttype para que las operaciones de lectura, listado y descarga mantengan la información del archivo. Estos metadatos no se exponen mediante la ruta pública.
UseFileManagerFileSystemFiles publica todo archivo administrado bajo RootPath. No se debe usar para contenido privado; para ese caso se requiere un endpoint autenticado o URLs firmadas.
| 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
- HeyRed.ImageSharp.Heif (>= 1.2.3)
- LibHeif.Native (>= 1.15.1)
- LibHeif.Native.linux-x64 (>= 1.15.1)
- LibHeif.Native.win-x64 (>= 1.15.1)
- Riok.Mapperly (>= 4.3.1)
- SixLabors.ImageSharp (>= 3.1.12)
- UltronFramework.Domain (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Expone archivos locales mediante una ruta HTTP pública configurable y genera UriCloud con la URL externa del API, con soporte para proxy, PathBase y procesos en segundo plano.