From 052a784fbe56ac62f2185e908247174c7b7795e8 Mon Sep 17 00:00:00 2001 From: xuty <xty50337@hotmail.com> Date: Sat, 14 Aug 2021 00:30:59 +0000 Subject: [PATCH] replace ByteStream with MinioByteStream --- CHANGELOG.md | 3 +++ README.md | 23 +++++++++++++++++++++++ lib/minio.dart | 1 + lib/src/minio_stream.dart | 10 ++++++++++ 4 files changed, 37 insertions(+) create mode 100644 lib/src/minio_stream.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index 318a3f2..24f18e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +# 2.1.0-pre +- `getObject` now returns `MinioByteStream` with an additional `contentLength` field. + ## 2.0.0-pre - Migrate to NNBD diff --git a/README.md b/README.md index 6876fb4..f2e62ba 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,29 @@ For complete example, see: [example] > To use `fPutObject()` and `fGetObject`, you have to `import 'package:minio/io.dart';` +**Get object** + +```dart +import 'dart:io'; +import 'package:minio/minio.dart'; + +void main() async { + final minio = Minio( + endPoint: 's3.amazonaws.com', + accessKey: 'YOUR-ACCESSKEYID', + secretKey: 'YOUR-SECRETACCESSKEY', + ); + + final stream = await minio.getObject('BUCKET-NAME', 'OBJECT-NAME'); + + // Get object length + print(stream.contentLength); + + // Write object data stream to file + await stream.pipe(File('output.txt').openWrite()); +} +``` + ## Features and bugs Please file feature requests and bugs at the [issue tracker][tracker]. diff --git a/lib/minio.dart b/lib/minio.dart index 113198e..c4333be 100644 --- a/lib/minio.dart +++ b/lib/minio.dart @@ -2,5 +2,6 @@ library minio; export 'src/minio.dart'; export 'src/minio_errors.dart'; +export 'src/minio_stream.dart'; // TODO: Export any libraries intended for clients of this package. diff --git a/lib/src/minio_stream.dart b/lib/src/minio_stream.dart new file mode 100644 index 0000000..3c2f83d --- /dev/null +++ b/lib/src/minio_stream.dart @@ -0,0 +1,10 @@ +import 'dart:async'; + +class MinioByteStream extends StreamView<List<int>> { + MinioByteStream.fromStream({ + required Stream<List<int>> stream, + required this.contentLength, + }) : super(stream); + + final int? contentLength; +} -- GitLab