- Fix: Update to latest
Microsoft.IO.RecyclableMemoryStream
package (thanks @dammitjanet) - New: Use
IFileSystem
package to improve testability ofDiskDirectoryBlobStorage
(thanks @gerrewsb)
- New:
OpenWriteAsync
API to append to existing blobs (thanks @gentledepp) - Fix: Update to latest Azure packages (thanks @dammitjanet)
- Change: Swap from
MemoryStream
toRecyclableMemoryStream
(thanks @dammitjanet)
- New: Return additional headers in
GetObjectMetadataAsync
API for access toContent-Type
(thanks @pkdigital)
- Fix: Paths prefixed with
\
will be correctly handled inZipFileBlobStorage
(thanks @gerrewsb) - New: Adds new connection string prefix
minio.s3
to allow MinIO connections to be created using a connection string (thanks @NickHarmer) - Change: Default value of
ListOptions.RecursionMode
fromLocal
toRemote
, so that S3/MinIO connections will recurse remotely by default - New: Add support for
ListOptions.PageSize
which allows users to customize the number of objects returned per call - New: Added reflection utilities that can be used by other FluentStorage modules
- Fix:
ExtendedSdk.GetHttpPipeline
needs to be manually set otherwise connection to DataLake Gen2 fails
- New:
BucketName
API inAwsS3BlobStorage
to obtain the bucket name (thanks @Pchol) - New:
SetAcl
API inAwsS3BlobStorage
to set S3 object permissions (thanks @Pchol) - New: Adds support for connection string prefix
minio.s3
(thanks @NickHarmer) - New: Add support for
ListOptions.PageSize
which allows users to customize the number of objects returned per call - New: Add support for
ListOptions.NumberOfRecursionThreads
to configure the number of threads
- New: Add support for
ListOptions.PageSize
which allows users to customize the number of objects returned per call
- New: Add support for
ListOptions.NumberOfRecursionThreads
to configure the number of threads
- Fix: Add missing dependency to
Polly
Nuget package
- Fix: Incorrect extension method
MinIO
in AWS Storage Factory
- Support for DigitalOceanSpaces, MinIO, Wasabi
- New:
StorageFactory.Blobs.DigitalOceanSpaces
API for connecting to DigitalOcean Spaces - New:
StorageFactory.Blobs.MinIO
API for connecting to MinIO storage servers - New:
StorageFactory.Blobs.Wasabi
API for connecting to Wasabi storage - New: Adds support for
serviceUrl
parameter in theAws.S3
connection string - New: Check to ensure
region
andserviceUrl
are not specified together
- Fix:
DeleteAsync
will delete all files in bucket if target object is not found - GCP packages have been updated to their latest versions
The following packages have had their dependencies updated. No other changes were done.
- FluentStorage.Azure.Blobs 5.2.3
- FluentStorage.Azure.DataLake 5.2.2
- FluentStorage.Azure.EventHub 5.2.2
- FluentStorage.Azure.Files 5.2.2
- FluentStorage.Azure.KeyVault 5.2.2
- FluentStorage.Azure.Queues 5.2.2
- FluentStorage.Azure.ServiceBus 6.0.1
- FluentStorage.Azure.ServiceFabric 5.2.2
- FluentStorage.Databricks 5.2.2
- FluentStorage.FTP 5.3.1
- FluentStorage.SFTP 5.3.1
(thanks timbze)
- Fix: Disk blob storage
WriteAsync
usesCopyToAsync
rather than sync
(thanks beeradmoore)
- New:
ListAsync
now supports recursion for listing directories usingFtpListOption.Recursive
(thanks beeradmoore)
- New:
ListAsync
now supports recursion for listing directories using manual async recursion - Fix:
WriteAsync
now sets the length of destination stream manually to avoid resulting data being left
(thanks GiampaoloGabba)
- Fix: Completely rewrite package for the new SDK
Azure.Messaging.ServiceBus
- New: New API for construction
AzureServiceBusTopicReceiver
andAzureServiceBusQueueReceiver
- New:
IMessenger
interface uses structured string format for referencing queues/topics - New:
IAzureServiceBusMessenger
interface with API to send/create/delete/count a queue/topic/subscription
- Fix: Remove unused dependency package
Newtonsoft.Json
from main project
(thanks dammitjanet)
- New: Constructor for
SymmetricEncryptionSink
andAesSymmetricEncryptionSink
to pass IV and key - New: Constructor for
EncryptedSink
abstract base class to pass in IV and key - New: Additional tests for encryption/decryption repeatability when the decrpytion IV is known
- Fix: Resolved Xunit errors and issue with with Xunit
FileData
attribute only finding a single file per test - Fix: Package updates and consolidation to latest Xunit
(thanks dammitjanet)
- New: Addition of
AesSymmetricEncryptionSink
andWithAesSymmetricEncryption
extension - Fix: Obsolesence of
SymmetricEncryptionSink
andWithSymmetricEncryption
extension - New: Updated Tests for
AesSymmetricEncryptionSink
- New: Additional Blob/Stream file tests and XUnit
FileDataAttribute
to support tests
- Fix:
AwsS3BlobStorage
checks if a bucket exists before trying to create one (thanks AntMaster7)
- Fix: Upgrade
System.Text.Json
package from v4 to v7
- Fix: Upgrade
System.Text.Json
package from v4 to v7 - Fix: Local storage: Handling of
LastModificationTime
andCreatedTime
- Fix: Local storage:
LastAccessTimeUtc
is saved as a Universal sortable string in the Blob properties
- Fix: Various fixes to
ListAsync
path handling - Fix: Upgrade
SSH.NET
package from v2016 to v2020
- New: Added support for a root path in the SFTP connection string
- Fix:
GetBlobsAsync
should return an array with a single null if the file does not exist - Fix:
WriteAsync
will create the directory if it does not exist
- New: Implement
LocalDiskMessenger.StartProcessorAsync
- Package: Add Nuget reference to
Newtonsoft.Json 13.0.3
- Package: Remove Nuget reference to
Newtonsoft.Json 12.x.x
- Package: Remove Nuget reference to
NetBox
and add the required utilities within this library
- New: Implement server-side filtering in
AwsS3DirectoryBrowser.ListAsync
by supplying aFilePrefix
(thanks SRJames)
- Fix: Support for the append parameter in FluentFtpBlobStorage (thanks candoumbe)
- Fix:
IBlobStorage.WriteAsync
will create the directory hierarchy if required (thanks candoumbe)
- Fix: Implementation of
LocalDiskMessenger.StartProcessorAsync
(issue #14)(netstandard2.1
/net6.0
and above
- New: Introducing the FluentStorage set of libraries created from Storage.NET
- New: Added SFTP provider using SSH.NET
- Fix: FTP provider FluentFTP updated to v44
- Fix: AWS Nugets bumped to latest versions as of Jan 2023
- Fix: All nuget packages now target
netstandard2.0
,netstandard2.1
,net50
,net60
- Change: Refactored package structure to simplify naming scheme
- Change: Refactored entire codebase to simplify code organization
- New: Documentation wiki created with one page per provider