Winche.Storage
1.0.0
See the version list below for details.
dotnet add package Winche.Storage --version 1.0.0
NuGet\Install-Package Winche.Storage -Version 1.0.0
<PackageReference Include="Winche.Storage" Version="1.0.0" />
<PackageVersion Include="Winche.Storage" Version="1.0.0" />
<PackageReference Include="Winche.Storage" />
paket add Winche.Storage --version 1.0.0
#r "nuget: Winche.Storage, 1.0.0"
#:package Winche.Storage@1.0.0
#addin nuget:?package=Winche.Storage&version=1.0.0
#tool nuget:?package=Winche.Storage&version=1.0.0
Winche.Storage
Lightweight .NET libraries and sample apps for storing file metadata in PostgreSQL and objects in S3-compatible archives (presigned URLs). The solution includes core abstractions, a Postgres+S3 file-store implementation, a small REST adapter, and a sample ASP.NET app.
Integrates with Winche.Sentinel for access control.
Install
dotnet add package Winche.Storage
Add the REST API integrations as needed:
dotnet add package Winche.Storage.AspNetCore.Rest
Quick Start
1. Configure appsettings.json
{
"WincheStorage": {
"S3Archive": {
"BucketName": "your-bucket",
"AccessKey": "YOUR_ACCESS_KEY",
"SecretKey": "YOUR_SECRET_KEY",
"RegionName": "us-east-1",
"PresignedUrlExpiry": "00:15:00"
}
}
}
2. Register services
builder.Services.AddWincheStorage(connectionString, builder.Configuration);
// Add REST API (optional)
builder.Services.AddWincheStorageRestApi();
3. Initialize schema and map endpoints
// Ensures the file records table
app.UseWincheStorage();
// Map REST routes (default prefix: "files")
app.UseWincheStorageRestApi();
See samples/WebApi for a complete working example.
Packages
| Package | Description |
|---|---|
Winche.Storage |
Core file store: schema, CRUD, queries, file management |
Winche.Storage.AspNetCore.Rest |
ASP.NET Core REST endpoints |
Requirements
- .NET 10 SDK (see
<TargetFramework>in each project; this repo targetsnet10.0) - PostgreSQL for metadata storage
- An S3-compatible bucket for object storage (or mock for local development)
License
Elastic License 2.0
| 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
- AWSSDK.S3 (>= 4.0.21.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.5)
- Npgsql (>= 10.0.2)
- Npgsql.DependencyInjection (>= 10.0.2)
- Winche.Sentinel (>= 1.1.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Winche.Storage:
| Package | Downloads |
|---|---|
|
Winche.Storage.AspNetCore.Rest
ASP.NET Core minimal-API endpoints for Winche.Storage, with pluggable claims mapping and exception handling. |
|
|
Winche.Storage.S3
AWS S3 archive backend for Winche.Storage, supporting presigned URLs, multipart uploads, and IAM or key-based authentication. |
|
|
Winche.Console
An embeddable admin console for Winche.Database and Winche.Storage. Drop it into your ASP.NET Core app to browse and edit JSON documents and manage stored files through a web UI, with its own authentication and role-based access. |
|
|
Winche.Storage.AspNetCore
ASP.NET Core integration base for Winche.Storage: HTTP-context claims mapping for the Winche.Rules guard. |
GitHub repositories
This package is not used by any popular GitHub repositories.