FluentStorage 8.0.16

Prefix Reserved
dotnet add package FluentStorage --version 8.0.16
                    
NuGet\Install-Package FluentStorage -Version 8.0.16
                    
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="FluentStorage" Version="8.0.16" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FluentStorage" Version="8.0.16" />
                    
Directory.Packages.props
<PackageReference Include="FluentStorage" />
                    
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 FluentStorage --version 8.0.16
                    
#r "nuget: FluentStorage, 8.0.16"
                    
#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 FluentStorage@8.0.16
                    
#: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=FluentStorage&version=8.0.16
                    
Install as a Cake Addin
#tool nuget:?package=FluentStorage&version=8.0.16
                    
Install as a Cake Tool

Please read the Migration Guide to help you migrate from older versions to FluentStorage 8!

FluentStorage 8.0.16
  • FluentStorage
    • New: OverwriteByTimestamp and OverwriteByChecksum modes to overwrite files based on timestamp or checksum
    • New: UploadDirectory will return a list of all the per-file progress reports at the end, and will record objects skipped due to rules
    • New: DownloadDirectory will return a list of all the per-file progress reports at the end, and will record objects skipped due to rules
    • New: SkipReason inside each StorageProgress to indicate why the object was skipped
    • New: SkipRule inside each StorageProgress to indicate which rule caused the object to be rejected
    • Change: Rename StorageExistsMode to StorageExists to reduce bloat
    • Fix: UploadDirectory and DownloadDirectory logic that caused it not to overwrite files
FluentStorage 8.0.14
  • FluentStorage
    • New: GetObjectChecksum API to compute various types of hashes for an object across all providers
    • New: StorageObjectHash object to hold a hash value and easily compare it against any local file or stream
    • New: StorageExistsMode.OverwriteIfChanged mode to only overwrite files if they have changed (length/checksum checks)
    • New: UploadDirectory supports the OverwriteIfChanged mode and only uploads files if the length/checksum mismatches
    • New: DownloadDirectory supports the OverwriteIfChanged mode and only downloads files if the length/checksum mismatches
    • Removed: GetObjectMD5 is removed in favour of GetObjectChecksum
  • FluentStorage.GCP
    • New: Implement fast GetObjectChecksum by using GetObjectAsync API to get MD5 object hash
  • FluentStorage.FTP
    • New: Implement fast GetObjectChecksum by using native FTP commands
  • FluentStorage.SFTP
    • New: Implement fast GetObjectChecksum by using native SSH shell commands to remotely compute an object hash.
    • New: Implement a powerful engine built for Windows and Unix to detects which Shell utilities are available once, then quickly use this information to compute a server-side hash of the file without needing to download it
    • New: Security engine to prevent path-injection and command-injection (based on security engine from FluentFTP)
FluentStorage 8.0.13
  • FluentStorage
    • New: Optimize StoragePath.Combine when combining only 2 path segments (most common use case)
  • FluentStorage.SFTP
    • New: Optimize SetObject & SetBytes APIs to improve transfer performance (4x faster)
    • New: Optimize UploadObject & UploadDirectory APIs to improve transfer performance (2x faster)
    • New: BufferSize set to a default of 128KB to improve transfer performance
    • New: TransferBufferSize setting to change upload/download buffer size
    • Fix: SetObject now correctly handles non-seekable streams
    • Fix: CreateDirectory now creates the entire directory path instead of just the last segment
    • Improve: DirectoryExists uses only one native API call to improve performance
    • Improve: UploadObject now uses native UploadFileAsync API to improve transfer performance
    • Remove: SetLengthOnNewStream as it is no longer supported
FluentStorage 8.0.12
  • FluentStorage
    • New: Add rule-based filtering support in DownloadDirectory and UploadDirectory for all storage providers
    • New: Add rule engine and rules from FluentFTP: ObjectNameRule, ObjectNameRegexRule, DirectoryNameRule, DirectoryNameRegexRule, ExtensionRule
    • New: Add new rule types for path checking: FullPathRule, FullPathRegexRule
    • Fix: Fix all logic issues in rules based on unit test suite
    • Fix: Support case-insensitive extension comparison in ExtensionRule
    • Fix: DownloadObject ensures parent directory exists and fix existance check
    • Fix: DownloadDirectory reports progress on successful transfers too
    • Fix: UploadDirectory reports progress on successful transfers too
    • Paths: StoreObject: Make FullPath instant by computing it at time of construction rather than dynamically
    • Paths: StoreObject: Add Input property to read the raw path given by the provider
  • FluentStorage.FTP
    • Fix: Improve DownloadObject API to have consistant behaviour
  • FluentStorage.SFTP
    • Fix: Improve DownloadObject API to have consistant behaviour
  • FluentStorage.Alibaba
    • Fix: All API should use a single constructor for StoreObject
  • FluentStorage.Tests
    • New: Extensive integration test suite for rule engine under IStore.DirRules class
    • New: Extensive unit test suite for rule engine under RuleTests class
Product 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 is compatible.  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 is compatible.  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 is compatible.  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 was computed.  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 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (34)

Showing the top 5 NuGet packages that depend on FluentStorage:

Package Downloads
Elsa.Core

Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. This package contains the core of Elsa. Tip: reference the `Elsa` package instead of this one.

Elsa.Http

Provides HTTP activities to listen for and send out HTTP requests.

FluentStorage.AWS

Extension to FluentStorage providing integration with AWS S3 blob storage.

FluentStorage.Azure.Blobs

Extension to FluentStorage providing Azure blob storage.

Elsa.Activities.BlobStorage

Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. This package provides activities to read and write files to blob storage using FluentStorage that provides a generic interface for popular cloud storage providers like Amazon S3, Azure Service Bus, Azure Event Hub, Azure Storage, Azure Data Lake Store thus abstracting Blob and Messaging services.

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on FluentStorage:

Repository Stars
elsa-workflows/elsa-core
The Workflow Engine for .NET
kurrent-io/KurrentDB
KurrentDB is a database that's engineered for modern software applications and event-driven architectures. Its event-native design simplifies data modeling and preserves data integrity while the integrated streaming engine solves distributed messaging challenges and ensures data consistency.
bitfoundation/bitplatform
Build all of your apps using what you already know and love ❤️
Version Downloads Last Updated
8.0.16 0 7/23/2026
8.0.15 0 7/23/2026
8.0.14 0 7/23/2026
8.0.13 0 7/23/2026
8.0.12 97 7/22/2026
8.0.11 186 7/21/2026
8.0.10 557 7/20/2026
8.0.9 245 7/19/2026
8.0.8 883 7/18/2026
8.0.7 131 7/18/2026
8.0.6 861 7/17/2026
8.0.5 479 7/17/2026
8.0.4 867 7/16/2026
8.0.3 311 7/16/2026
8.0.2 372 7/16/2026
8.0.0 1,800 7/15/2026
7.1.1 1,973 7/6/2026
7.1.0 1,392 7/6/2026
7.0.0 229 7/6/2026
6.0.4 52,483 5/6/2026
Loading failed