2.0.0
2.0.0 introduces massive ergonomic improvements and some breaking changes.
New features
Breaking change for AWS S3 and Minio users
Factory methods for S3 do not have bucket name anymore. Instead, you need to pass bucket name as a part of the file path.
Before v2: /directory/object
.
Since v2: /bucket/directory/object
.
This syntax makes accessing multiple buckets more ergonomic. In addition to that, Ls
operation on root folder simply returns the list of buckets.
Breaking change for Azure Storage users
In azure storage, URL now must start with container name.
Before v2: /directory/object
.
Since v2: /container/directory/object
.
Ls
operation on root folder simply returns the list of containers.
Other new features
- breaking:
Rm
operation now has norecurse
flag. Passing a file deletes a file, passing a folder deletes the folder recursively. It should have been as easy as that, not sure why that flag was there in the first place! - breaking: .NET Core support is dropped. The minimum supported framework is now .NET 5.
- New operation
Stat
retrieves object information without downloading it. - Azure Blob storage supports new authentication type - with Entra Id Service Principals.
Improvements
- AWS CLI configuration parser also picks up default region from
~/.aws/config
file. - S3 error messages are improved, taking response message from HTTP API response.
- S3 accepts session token when authenticating, allowing you to use credentials from AWS STS.
- Azure storage provider protocol upgraded to
2020-10-02
. - Enabled nullable reference types and fixed a lot of null checks.
Bugs fixed
- AWS
Rm
on folders was not deleting recursively. - Azure
Ls
command did not return more than 5k items.