wdWriteWithStream method

Future<void> wdWriteWithStream(
  1. Client self,
  2. String path,
  3. Stream<List<int>> data,
  4. int length, {
  5. void onProgress(
    1. int count,
    2. int total
    )?,
  6. CancelToken? cancelToken,
})

write a file with stream

Implementation

Future<void> wdWriteWithStream(
  Client self,
  String path,
  Stream<List<int>> data,
  int length, {
  void Function(int count, int total)? onProgress,
  CancelToken? cancelToken,
}) async {
  // fix auth error
  var pResp = await this.wdOptions(self, path, cancelToken: cancelToken);
  if (pResp.statusCode != 200) {
    throw newResponseError(pResp);
  }

  // mkdir
  await this._createParent(self, path, cancelToken: cancelToken);

  var resp = await this.req(
    self,
    'PUT',
    path,
    data: data,
    optionsHandler: (options) => options.headers?['content-length'] = length,
    onSendProgress: onProgress,
    cancelToken: cancelToken,
  );
  var status = resp.statusCode;
  if (status == 200 || status == 201 || status == 204) {
    return;
  }
  throw newResponseError(resp);
}