OutWit.Shared.Storage.Provider.Disk
1.0.0
dotnet add package OutWit.Shared.Storage.Provider.Disk --version 1.0.0
NuGet\Install-Package OutWit.Shared.Storage.Provider.Disk -Version 1.0.0
<PackageReference Include="OutWit.Shared.Storage.Provider.Disk" Version="1.0.0" />
<PackageVersion Include="OutWit.Shared.Storage.Provider.Disk" Version="1.0.0" />
<PackageReference Include="OutWit.Shared.Storage.Provider.Disk" />
paket add OutWit.Shared.Storage.Provider.Disk --version 1.0.0
#r "nuget: OutWit.Shared.Storage.Provider.Disk, 1.0.0"
#:package OutWit.Shared.Storage.Provider.Disk@1.0.0
#addin nuget:?package=OutWit.Shared.Storage.Provider.Disk&version=1.0.0
#tool nuget:?package=OutWit.Shared.Storage.Provider.Disk&version=1.0.0
OutWit.Shared.Storage.Provider.Disk
Filesystem-backed blob storage plugin for OutWit hosts. Implements
IBlobStorageProvider against the local disk: each blob lives in its
own GUID-named directory under a configurable root, with one or more
files inside.
Drop this package into any consumer of
OutWit.Shared.Storage.Providers
and set Storage:ProviderKey=Disk — the host's WitPluginLoader picks
the plugin up at startup.
Install
dotnet add package OutWit.Shared.Storage.Provider.Disk
A NuGet post-build target stages the plugin module into the consuming
project's output directory at @Storage/disk.module/, where the host's
WitPluginLoader<IBlobStorageProviderPlugin> discovers it.
Configure
The plugin ships an appsettings.json with a single key:
{
"DiskBlobStorage": {
"StoragePath": "@Blobs"
}
}
- Relative paths resolve from
AppContext.BaseDirectory. - The directory is created on first use if missing.
- Per-host overrides via
appsettings.{Environment}.jsonand standard environment variables (DiskBlobStorage__StoragePath=...).
Layout on disk
For blob Guid = 0e3c…d1:
@Blobs/
0e3c…d1/
archive.zip
readme.md
Multiple files per blob are supported. The provider validates filenames
for path traversal (.., separators, invalid chars) — uploads outside
the blob's GUID directory cannot happen.
Limitations
- Single-machine — no replication or sharding. Use S3 / Azure Blob plugins (planned) for multi-node or cloud deployments.
- Locking is per-file — concurrent writes to the same blob+filename
serialise via
FileShare.None; concurrent writes to different files proceed in parallel. - No background cleanup — blob expiry is the responsibility of the
host's higher-level
BlobStorageService(in WitCloud) readingBlobInfo.ExpiresAtUtcand callingDeleteAsync.
License
Licensed under the Apache License, Version 2.0. See LICENSE.txt.
| 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. |
This package has no dependencies.
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 |
|---|---|---|
| 1.0.0 | 40 | 5/20/2026 |