diff --git a/CHANGELOG.md b/CHANGELOG.md index d6a54526b0a13a0e14237c1451e5853b7ca781cd..8968530435a3c28d3a0f53ff20f5101757310c03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.3.3 +- Fix empty upload error +- Update README.md + # 3.3.3-pre - Update stream file upload diff --git a/README.md b/README.md index ecfa3ea1b289475209f93097313b6f84b95aea82..b2bb908c3a0ae2b4c8a6d2ba4c4166122d1e43a0 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,26 @@ For complete example, see: [example] > To use `fPutObject()` and `fGetObject`, you have to `import 'package:minio/io.dart';` +**File upload with progress** +```dart +import 'package:minio/minio.dart'; + +void main() async { + final minio = Minio( + endPoint: 'play.min.io', + accessKey: 'Q3AM3UQ867SPQQA43P2F', + secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG', + ); + + await minio.putObject( + 'mybucket', + 'myobject', + Stream<Uint8List>.value(Uint8List(1024)), + onProgress: (bytes) => print('$bytes uploaded'), + ); +} +``` + **Get object** ```dart diff --git a/lib/src/utils.dart b/lib/src/utils.dart index 307cf274f98bd8df36420d9da7b71fe997b24a76..0d43fe4909cf6beb526f2da684d604191da72eca 100644 --- a/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -108,9 +108,7 @@ class MinChunkSize extends StreamTransformerBase<Uint8List, Uint8List> { yield buffer.takeBytes(); } - if (buffer.isNotEmpty) { - yield buffer.takeBytes(); - } + yield buffer.takeBytes(); } } diff --git a/pubspec.yaml b/pubspec.yaml index 3f2abbf52b108d7214e60270c18b01b07e4e4353..f4c483eea1b1c87a894c916ad8fddc5b736e393f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: minio description: Unofficial MinIO Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server. -version: 3.3.3-pre +version: 3.3.3 homepage: https://github.com/xtyxtyx/minio-dart issue_tracker: https://github.com/xtyxtyx/minio-dart/issues diff --git a/test/minio_test.dart b/test/minio_test.dart index 9a1df135c1dd0c94ebcd160a19c3fdd087ee3fcd..7b970c29caf3cc68d9e826f1b2ee78938bea7076 100644 --- a/test/minio_test.dart +++ b/test/minio_test.dart @@ -427,6 +427,22 @@ void testPutObject() { expect(stat.size, equals(dataLength)); }); + test('empty stream upload works', () async { + final objectName = uniqueName(); + await minio.putObject(bucketName, objectName, Stream.empty()); + final stat = await minio.statObject(bucketName, objectName); + await minio.removeObject(bucketName, objectName); + expect(stat.size, equals(0)); + }); + + test('zero byte stream upload works', () async { + final objectName = uniqueName(); + await minio.putObject(bucketName, objectName, Stream.value(Uint8List(0))); + final stat = await minio.statObject(bucketName, objectName); + await minio.removeObject(bucketName, objectName); + expect(stat.size, equals(0)); + }); + test('multipart file upload works', () async { final objectName = uniqueName(); final dataLength = 12 * 1024 * 1024;