fPutObject method

Future<String> fPutObject(
  1. String bucket,
  2. String object,
  3. String filePath, {
  4. Map<String, String>? metadata,
  5. void onProgress(
    1. int
    )?,
  6. int? maxRetries,
  7. void onRetry(
    1. UploadRetryStage stage,
    2. int attemptCount,
    3. int maxRetries,
    4. dynamic error,
    )?,
})

Implementation

Future<String> fPutObject(
  String bucket,
  String object,
  String filePath, {
  Map<String, String>? metadata,
  void Function(int)? onProgress,
  int? maxRetries,
  void Function(
    UploadRetryStage stage,
    int attemptCount,
    int maxRetries,
    dynamic error,
  )? onRetry,
}) async {
  MinioInvalidBucketNameError.check(bucket);
  MinioInvalidObjectNameError.check(object);

  metadata ??= {};
  metadata = insertContentType(metadata, filePath);
  metadata = prependXAMZMeta(metadata);

  final file = File(filePath);
  final stat = await file.stat();
  if (stat.size > maxObjectSize) {
    throw MinioError(
      '$filePath size : ${stat.size}, max allowed size : 5TB',
    );
  }

  return putObject(
    bucket,
    object,
    file.openRead().cast<Uint8List>(),
    size: stat.size,
    metadata: metadata,
    onProgress: onProgress,
    maxRetries: maxRetries,
    onRetry: onRetry,
  );
}