zuraffa_minio 7.3.6
zuraffa_minio: ^7.3.6 copied to clipboard
A maintained fork of the minio package - a pure Dart client for MinIO and Amazon S3 compatible object storage.
7.3.6 - 2026-11-02 #
- Mono-version fleet alignment to 7.3.6; internal dependencies refreshed; xml override 7.1.0.
7.3.2 - 2026-10-31 #
Mono-version fleet alignment to 7.3.2: outbound send port lands in zuraffa_intents (shareText/shareFiles behind ShareIntentService); the whole family ships at one version.
7.3.1 - 2026-10-29 #
- The declared
xmlconstraint raises from^7.0.0to^7.1.0— the fleet's standard xml line. No code changes; the workspace override already pinnedxml: 7.1.0.
7.3.0 - 2026-10-28 #
- Mono-version fleet alignment: the whole zuraffa family ships at 7.3.0 together with the core.
zuraffadependency constraints unified to ^7.3.0; cross-family constraints move with the release.- Fleet-wide
dependency_overrides: xml: 7.1.0; README install guides refreshed to 7.3.0.
7.2.0 - 2026-10-28 #
- Mono-version fleet alignment: the whole zuraffa family now ships at the same version as the core.
zuraffadependency constraint unified to ^7.2.0 across the fleet.- zuraffa_storage now wraps the maintained
zuraffa_miniofork instead of the abandonedminiopackage (xml 7 compatible). - Fleet-wide
dependency_overrides: xml: 7.1.0policy; README install guides refreshed to the release version.
0.2.5 #
Restores the upstream constructor with its required credentials, writes the notification configuration shape a MinIO server really speaks, and bounds the parallel download's buffer.
Breaking for the users of 0.2.4 — the constructor is the one of the upstream package again:
Minio(...)asks for theaccessKeyand thesecretKeyagain. In 0.2.4 they were optional, so a client that forgot them signed every request with an empty key and was anonymous without saying so. A client that resolves its own credentials callsMinio.withCredentialsProvider(...)now, which needs no placeholder keys. The primary constructor still takes acredentialsProvider; once one resolves, it takes precedence over the static keys the client was built with.- the notification configuration reads and writes the shape a MinIO server
really speaks: the configurations are the direct children of
<NotificationConfiguration>, the destination is<Queue>,<Topic>or<CloudFunction>, and the events are repeated<Event>elements. The older forms are still read, so a server that answers with them keeps working. The 0.2.4 entry described the wrapper element; that was wrong. getObjectrejects a chunk size of zero at the entry point, before the size of the object is fetched over the network.- a parallel download buffers at most
parallelismranges ahead of the head of the object. Before, the ranges that came back early were buffered without a bound. - a
hostoverride that names a global Amazon endpoint is not discarded any more. Only an endpoint that was not overridden is regionalized. - the committed model file carries the generator's header again, and the tests guard that much. The model list and the doc comments follow the live AWS API documentation, so regenerating adds whatever AWS documents today.
- the test groups remove their buckets and their objects again, so a run of the suite leaves nothing behind on the server.
- the workflow of the tests picks the MinIO binary for the platform of the runner, and the server no longer holds the step open: the tests run against a server that is really there.
0.2.4 #
The findings of the review of the pull request of the fork.
- a parallel download that lost a range hands the error to the consumer instead of ending the stream normally. A truncated download can no longer look like a complete one.
- the planner of the byte ranges rejects a chunk size of zero, which made it run forever.
uploadPartaccepts a plain list of bytes again; only aUint8Listcould be sent as the body of a request before.closeonly closes a client the instance created itself. A client that was passed to the constructor belongs to the caller.- the Amazon endpoints keep the path style of the upstream package as their
default, so a migration stays an import swap. The virtual host style is one
setting away:
pathStyle: false. - the notification configuration reads and writes the wrapper elements the
server uses: the configurations are a list, and the events are the children
of the
Eventselement. The upstream package parsed the wrapper element itself, so every field of a configuration came back empty. - the default library no longer exports the models. One of them is called
Object, and the export shadowed theObjectofdart:corein every file that imported the package. The models live inpackage:zuraffa_minio/models.dart, exactly as they did upstream. - the generator of the models writes code that compiles. The committed file carries the corrections of the notification models by hand; the generator says so.
0.2.3 #
- the counting semaphore of the parallel download is covered by a test now. The test fails against the implementation of 0.2.1 and 0.2.2: that one gave the slot back before it handed it over, so a caller that arrived in the middle of the handover could take a second slot and push the number of requests in flight past the limit.
- the wording of the 0.2.2 entry overstated how reachable that problem was: the parallel download asks for all of its ranges up front, so the window was never open on that path. The fix stays, and it is now covered by a test.
0.2.2 #
- the counting semaphore that caps the number of requests in flight hands the slot over to the next waiter instead of giving it back first, so the number of slots in use never grows past the limit when a caller arrives in the middle of a handover.
- the parallel multipart upload remembers the failure of a part instead of letting it propagate. The parts that are still in flight no longer end up as unhandled errors, and the first failure is rethrown once the bounded wait is over.
0.2.1 #
- the presigned calls resolve the credentials of a
credentialsProviderbefore they sign, like every other request does. Without it a client that has only a provider — no static keys — signed its presigned URLs with an empty access key.
0.2.0 #
The first release of zuraffa_minio, the maintained fork of the minio
package. The API of the original package is unchanged, so migrating is an
import swap:
// before
import 'package:minio/minio.dart';
// after
import 'package:zuraffa_minio/minio.dart';
Dependencies #
xmlfrom 6.4.2 to 7.x, and every other pin moved to its current release (http1.6,crypto3.0.7,convert3.1.2,intl0.20.2,meta1.16,mime2.0.0,path1.9.1)
Fixed #
- #6 the notification poller called
json.decodeon the XML payload MinIO sends; it understands the XML and the JSON format now, and it no longer delivers every event twice - #24 a negative object size failed an
assert, which only exists in debug builds; it is anArgumentErrornow - #38 an unknown region fell back to the global endpoint, which only accepts
us-east-1signatures ("the region is wrong; expecting 'us-east-1'"); the regional host is kept, and a request the server rejects withAuthorizationHeaderMalformedis signed and addressed again with the region the server names - #43
getRequestUrlread the region without a null check and threw "Unexpected null value" for every request against an Amazon endpoint without a region - #49
listBucketscast the whitespace text nodes between the buckets toXmlElement - #108
statObjectreadcontent-lengthandlast-modifiedwith a bang operator and crashed when a server left one of them out listIncompleteUploadssent theuploadsparameter twice, which broke the signature of every request it madelistPartsandlistIncompleteUploadsread the wrong XML elements and therefore always reported an empty, untruncated pagelistPartscast the document node toXmlElement, which is aTypeErrorlistIncompleteUploadsfailed as a whole when a single upload could not be inspected any more- a client with a
credentialsProvidersigned its requests anonymously: it decided it was anonymous before the provider had resolved the credentials
Added #
- #85, #45, #93 a
MinioCancellationTokenthat aborts the requests in flight, andMinio.close()that aborts everything that is running - #80, #93 the
http.Clientcan be injected, andpackage:zuraffa_minio/io.darthascreateTlsHttpClientfor a customSecurityContextor for accepting invalid certificates - #101
presignedUrlandpresignedPostPolicyaccepthost,portanduseSSLoverrides, so a presigned URL can be generated for a public host while the client talks to an internal one - #94 a
credentialsProvidercallback, so temporary (STS) credentials can be renewed while the application runs - #4, #20
getObjectandgetPartialObjectreport the download progress throughonProgress - #12
objectUrlreturns the plain URL of an object - #99
removeObjectsByPrefixremoves every object under a prefix - #102
uploadPartuploads a single part of a multipart upload, so an application can drive the multipart upload itself - #112
getObjectcan fetch the object as concurrent byte ranges - #98
putObjectcan upload the parts of a multipart upload concurrently
Testing #
- the test suite no longer depends on the public demo server (which is gone); it talks to a local MinIO server and skips the integration tests with a reason when no server answers
- the CI workflow starts a MinIO server and runs the whole suite against it
Note #
The zuraffa_minio 0.1.x releases were a from-scratch rewrite with a
different API and a dependency on the zuraffa framework. They are withdrawn:
this release is the drop-in fork of the upstream package, which is what the
issue reports are written against. The 0.1.x implementation is kept on the
archive/0.1.x-rewrite branch.
3.5.8 #
- Fix path encoding for space and plus characters in object names to prevent signature mismatch errors #7
- Update fPutObject method signature to use named parameters for better API consistency
3.5.7 #
- fix maxKeys error while using listObject query #97
- Bump intl from 0.19.0 to 0.20.0 in the root-pub group #96
3.5.6 #
- Fix non en-US date time parse #95
3.5.5 #
- Move x-amz-security-token allocation before signV4 to correctly sign the request #92
- Bump mime from 1.0.6 to 2.0.0 in the root-pub group #91
3.5.4 #
- Add validation for HTTP response for
getObjectACL/ Make retrieval of ACLs optional forstatObject#48
3.5.3 #
- Add
pathStyleparameter toMinioconstructor to support custom endpoints.
3.5.2 #
- Downgrade
metapackage to1.12.0to fix compatibility issues with Flutter.
3.5.1 #
- Updates minimum supported SDK version to Dart 3.0.
- Fixes all lint warnings.
- Added x-amz-security-token header support for session tokens.
- Wait for rename to finish before in
fGetObject. - Updated
MinioErrorto implement theExceptioninterface. - Added XML validation before parsing response body.
- Updated return type of
presignedPostPolicytoFuture<PostPolicyResult>. - Replaced
pushwithaddfor adding conditions to the policy.
3.5.0 #
- Fix listObject with utf-8 prefix
3.4.0-pre #
- Better upload progress on web
3.3.3 #
- Fix empty upload error
- Update README.md
3.3.3-pre #
- Update stream file upload
3.3.2-pre #
- Add tests
3.3.1-pre #
- Improve upload progress granularity
- Fix broken test
3.3.0-pre #
- Support listening upload progress
3.1.0 #
2.1.0-pre #
getObjectnow returnsMinioByteStreamwith an additionalcontentLengthfield.
2.0.0-pre #
- Migrate to NNBD
1.3.0 #
- fix HTTP header for user-defined object metadata #17, thanks @philenius
1.1.0 #
1.1.0-pre #
- fix bucketExists is true when bucket doesn't exist #13
1.0.2-pre #
- Replace static region 'us-east-1' in method listBuckets() with variable's value
1.0.1-pre #
- Updated dependencies
- Fixed Malformed XML error
- Fixed Types incompatibility in minio_uploader stream subscription queries
- Temporarily closed call for search of unfinished uploads (Causes Signature Error)
0.1.8 #
- Update dependency
0.1.7 #
- Fix region issue, thanks @ivoryxiong
0.1.6 #
- support policy apis
0.1.5 #
- support notification apis
0.1.4 #
- support presignedPostPolicy
0.1.3 #
- support presignedGetObject and presignedPutObject
0.1.2 #
- support presignedUrl
0.1.1 #
- update dependency
0.1.0+2 #
- try to fix table display
0.1.0+1 #
- update README
0.1.0 #
- Initial version, created by Stagehand