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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OutWit.Shared.Storage.Provider.Disk" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Shared.Storage.Provider.Disk" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Shared.Storage.Provider.Disk" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OutWit.Shared.Storage.Provider.Disk --version 1.0.0
                    
#r "nuget: OutWit.Shared.Storage.Provider.Disk, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OutWit.Shared.Storage.Provider.Disk@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OutWit.Shared.Storage.Provider.Disk&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Shared.Storage.Provider.Disk&version=1.0.0
                    
Install as a Cake Tool

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}.json and 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) reading BlobInfo.ExpiresAtUtc and calling DeleteAsync.

License

Licensed under the Apache License, Version 2.0. See LICENSE.txt.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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