putObject method

Future<String> putObject(
  1. String bucket,
  2. String object,
  3. Stream<List<int>>? data,
  4. int? size, {
  5. Map<String, String>? metadata,
})

Uploads the object.

Implementation

Future<String> putObject(
  String bucket,
  String object,
  Stream<List<int>>? data,
  int? size, {
  Map<String, String>? metadata,
}) async {
  MinioInvalidBucketNameError.check(bucket);
  MinioInvalidObjectNameError.check(object);

  assert(data != null);
  assert(size == null || size >= 0);

  metadata = prependXAMZMeta(metadata ?? <String, String>{});

  size ??= maxObjectSize;
  size = _calculatePartSize(size);

  final chunker = BlockStream(size);
  final uploader = MinioUploader(
    this,
    _client!,
    bucket,
    object,
    size,
    metadata,
  );
  final etag = await data!.transform(chunker).pipe(uploader);
  return etag.toString();
}