Lyo.Api.FileStorage
3.0.0
dotnet add package Lyo.Api.FileStorage --version 3.0.0
NuGet\Install-Package Lyo.Api.FileStorage -Version 3.0.0
<PackageReference Include="Lyo.Api.FileStorage" Version="3.0.0" />
<PackageVersion Include="Lyo.Api.FileStorage" Version="3.0.0" />
<PackageReference Include="Lyo.Api.FileStorage" />
paket add Lyo.Api.FileStorage --version 3.0.0
#r "nuget: Lyo.Api.FileStorage, 3.0.0"
#:package Lyo.Api.FileStorage@3.0.0
#addin nuget:?package=Lyo.Api.FileStorage&version=3.0.0
#tool nuget:?package=Lyo.Api.FileStorage&version=3.0.0
Lyo.Api.FileStorage
HTTP endpoints for Lyo file storage. After a keyed IFileStorageService (plus multipart and archive) is registered, hosts map BuildFileStorageApi. When IFileStorageFactory is
registered, GET {Route}/stores lists each name and {Route}/{name}. File and multipart calls for that store use the name. FileStorage:Default serves the bare route.
FileMetadata Query/QueryProject stays on the host route. Access links stay on the bare route. GET capabilities lists feature flags for presigned read, direct upload, multipart,
copy, move, physical listing, encryption, archive, and access links. It does not include bucket, disk root, or keystore location. GET key-ids lists encryption key identifiers;
keystore CRUD is not part of this API.
Examples
Set up the host
app.BuildFileStorageApi(); // defaults: FileStorage, keyed gateway-filestorage
// or:
app.BuildFileStorageApi(new FileStorageApiOptions {
Route = "FileStorage",
ServiceKey = "gateway-filestorage"
});
Stores
GET FileStorage/stores
[{ "name": "archive", "route": "FileStorage/archive", "fileMetadataRoute": null }]
POST FileStorage/archive/files/save
FileMetadata QueryProject stays at FileStorage/FileMetadata. The grid does not switch catalogs.
Routes this maps
At FileStorageApiOptions.Route the group exposes: health, GET capabilities (feature flags only; no bucket, disk root, or keystore location), save/save-stream, copy/move/rename,
metadata, download (always streams through the host, honors ?inline=true; decrypt/decompress on the API; a full response sets Content-Digest for the plaintext hash). A single
Range on any uncompressed object, including an encrypted one, returns 206 with Accept-Ranges: bytes when the backend can slice. An encrypted object is decrypted from the
chunk that holds the requested plaintext offset. The initial 200 for that file also sends Accept-Ranges. Compressed objects ignore Range and stay a full 200 without
Accept-Ranges. A well-formed range that starts at or past the end returns 416. The same group also maps GET files/{id}/integrity (plaintext hash, algorithm, and size),
archive, access-links, presigned-read (direct-to-bucket URL), DEK migrate/rotate, GET key-ids (encryption key identifiers only, no raw material), GET files/folder (store
PathPrefix plus reconcile, flags Store / Physical / Both), diagnostics/storage-keys, multipart/*, direct-upload/*. Optional POST DirectUploadPath (default
upload/file). A read-only FileMetadata QueryProject lives at FileMetadataRoute. No keys/* CRUD routes exist. Wire DTOs live in Lyo.Api.FileStorage.Models.
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Api(direct, lyo)Lyo.Api.FileStorage.Models(direct, lyo)Lyo.Cache(direct, lyo)Lyo.Common.Core(direct, lyo)Lyo.Common.Metadata(direct, lyo)Lyo.Exceptions(direct, lyo)Lyo.FileMetadataStore.Postgres(direct, lyo)Lyo.FileStorage(direct, lyo)Lyo.KeyStore(direct, lyo)Lyo.Api.Models(transitive, lyo)Lyo.Compression(transitive, lyo)Lyo.DataTable.Models(transitive, lyo)Lyo.DateAndTime(transitive, lyo)Lyo.Diagnostic(transitive, lyo)Lyo.Diagnostic.AspNetCore(transitive, lyo)Lyo.Diff(transitive, lyo)Lyo.Encryption(transitive, lyo)Lyo.FileMetadataStore(transitive, lyo)Lyo.Formatter(transitive, lyo)Lyo.Hashing(transitive, lyo)Lyo.Health(transitive, lyo)Lyo.IO.FileSystem(transitive, lyo)Lyo.IO.Temp(transitive, lyo)Lyo.Json(transitive, lyo)Lyo.Lock(transitive, lyo)Lyo.Metrics(transitive, lyo)Lyo.PackageMetadata(transitive, lyo)Lyo.Parameters(transitive, lyo)Lyo.Postgres(transitive, lyo)Lyo.Query(transitive, lyo)Lyo.Query.Evaluation(transitive, lyo)Lyo.Query.Models(transitive, lyo)Lyo.Query.Sql(transitive, lyo)Lyo.RateLimit(transitive, lyo)Lyo.Result(transitive, lyo)Lyo.Streams(transitive, lyo)Lyo.Validation(transitive, lyo)Lyo.Validation.Models(transitive, lyo)BouncyCastle.Cryptography2.6.2(transitive, third-party, netstandard2.0)DynamicExpresso.Core2.19.3(transitive, third-party)EasyCompressor2.1.0(transitive, third-party)Konscious.Security.Cryptography.Argon21.3.1(transitive, third-party)Microsoft.AspNetCore.OpenApi10.0.5(transitive, microsoft)Microsoft.Bcl.AsyncInterfaces10.0.5(transitive, microsoft, netstandard2.0)Microsoft.Bcl.TimeProvider8.0.1(transitive, microsoft, netstandard2.0)Microsoft.EntityFrameworkCore10.0.5(transitive, microsoft)Microsoft.EntityFrameworkCore.Analyzers10.0.5(transitive, microsoft)Microsoft.EntityFrameworkCore.Design10.0.5(transitive, microsoft)Microsoft.EntityFrameworkCore.Relational10.0.5(transitive, microsoft)Microsoft.Extensions.Caching.Memory10.0.5(transitive, microsoft)Microsoft.Extensions.Configuration.Binder10.0.5(transitive, microsoft)Microsoft.Extensions.DependencyInjection10.0.5(transitive, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(transitive, microsoft, net10.0, netstandard2.0)Microsoft.Extensions.Hosting.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Options10.0.5(transitive, microsoft)Microsoft.Extensions.Options.ConfigurationExtensions10.0.5(transitive, microsoft)Microsoft.Extensions.Options.DataAnnotations10.0.5(transitive, microsoft)Npgsql.EntityFrameworkCore.PostgreSQL10.0.3(transitive, third-party)SmartFormat.NET3.6.1(transitive, third-party)System.Buffers4.6.1(transitive, microsoft, netstandard2.0)System.ComponentModel.Annotations5.0.0(transitive, microsoft)System.IO.Hashing10.0.5(transitive, microsoft, net10.0)System.Memory4.6.3(transitive, microsoft, netstandard2.0)System.Text.Encoding.CodePages10.0.5(transitive, microsoft)System.Text.Json10.0.5(transitive, microsoft, netstandard2.0)System.Threading.Tasks.Extensions4.6.3(transitive, microsoft, netstandard2.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
- Lyo.Api (>= 3.0.0)
- Lyo.Api.FileStorage.Models (>= 3.0.0)
- Lyo.Cache (>= 3.0.0)
- Lyo.Common.Core (>= 3.0.0)
- Lyo.Common.Metadata (>= 3.0.0)
- Lyo.Exceptions (>= 3.0.0)
- Lyo.FileMetadataStore.Postgres (>= 3.0.0)
- Lyo.FileStorage (>= 3.0.0)
- Lyo.KeyStore (>= 3.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.