DamianH.Http.HybridCacheHandler.ContentStore.FileSystem
0.2.0
dotnet add package DamianH.Http.HybridCacheHandler.ContentStore.FileSystem --version 0.2.0
NuGet\Install-Package DamianH.Http.HybridCacheHandler.ContentStore.FileSystem -Version 0.2.0
<PackageReference Include="DamianH.Http.HybridCacheHandler.ContentStore.FileSystem" Version="0.2.0" />
<PackageVersion Include="DamianH.Http.HybridCacheHandler.ContentStore.FileSystem" Version="0.2.0" />
<PackageReference Include="DamianH.Http.HybridCacheHandler.ContentStore.FileSystem" />
paket add DamianH.Http.HybridCacheHandler.ContentStore.FileSystem --version 0.2.0
#r "nuget: DamianH.Http.HybridCacheHandler.ContentStore.FileSystem, 0.2.0"
#:package DamianH.Http.HybridCacheHandler.ContentStore.FileSystem@0.2.0
#addin nuget:?package=DamianH.Http.HybridCacheHandler.ContentStore.FileSystem&version=0.2.0
#tool nuget:?package=DamianH.Http.HybridCacheHandler.ContentStore.FileSystem&version=0.2.0
Filesystem HTTP cache content store
DamianH.Http.HybridCacheHandler.ContentStore.FileSystem stores large HTTP cache
bodies using local files and bounded 64 KiB streaming copies. It is independent
of the handler and FileDistributedCache, with cache-filesystem-v release tags.
Targets are net10.0, netstandard2.0, and net472. Retention uses the supplied
TimeProvider on every target, including fake clocks. Legacy cleanup uses a
coalescing timer and is cancelled and joined on disposal.
Install from your application project directory:
dotnet add package DamianH.Http.HybridCacheHandler.ContentStore.FileSystem
using DamianH.Http.HybridCacheHandler.ContentStore.FileSystem;
using System.Diagnostics;
using var process = Process.GetCurrentProcess();
var processId = process.Id.ToString();
services.AddHttpHybridCacheFileSystemContentStore(options =>
{
options.RootDirectory = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"MyApp", "http-bodies", processId);
options.MaximumAge = TimeSpan.FromDays(7);
options.MaximumTotalBytes = 10L * 1024 * 1024 * 1024;
});
Configure handler offload separately and only one backend. Use one instance in one process per trusted private root. Network/shared filesystems and distributed locking are unsupported. Protect every ancestor with OS permissions; reparse-point checks are not a security sandbox. PID-based roots need operator cleanup on restart.
Both retention limits default to unset; the example explicitly enables soft limits. Cleanup defaults to five minutes. Retention is not HTTP freshness. Do not eagerly delete shared bodies. Writes require seekable caller-owned input and exact remaining length. The provider owns the singleton; callers must dispose returned independent readers. Local atomic rename is required; crash/power-loss durability is not promised. See the full guide for cancellation, serialized writes, cleanup, and error semantics.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- DamianH.Http.HybridCacheHandler.ContentStore (>= 0.1.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.10)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- System.Memory (>= 4.6.3)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETStandard 2.0
- DamianH.Http.HybridCacheHandler.ContentStore (>= 0.1.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.10)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- System.Memory (>= 4.6.3)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net10.0
- DamianH.Http.HybridCacheHandler.ContentStore (>= 0.1.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 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 |
|---|---|---|
| 0.2.0 | 34 | 10/14/2026 |