listObjectsV2 method

Stream<ListObjectsChunk> listObjectsV2(
  1. String bucket, {
  2. String prefix = '',
  3. bool recursive = false,
  4. String? startAfter,
})

Returns all Objects in a bucket. If recursive is true, the returned stream may also contains CommonPrefix

Implementation

Stream<ListObjectsChunk> listObjectsV2(
  String bucket, {
  String prefix = '',
  bool recursive = false,
  String? startAfter,
}) async* {
  MinioInvalidBucketNameError.check(bucket);
  MinioInvalidPrefixError.check(prefix);
  final delimiter = recursive ? '' : '/';

  var isTruncated = false;
  String? continuationToken;

  do {
    final resp = await listObjectsV2Query(
      bucket,
      prefix,
      continuationToken,
      delimiter,
      1000,
      startAfter,
    );
    isTruncated = resp.isTruncated ?? false;
    continuationToken = resp.nextContinuationToken;
    yield ListObjectsChunk()
      ..objects = resp.contents
      ..prefixes = resp.commonPrefixes?.map((e) => e.prefix!).toList();
  } while (isTruncated);
}