putStream_Request method
StreamedRequest
putStream_Request(})
Returns a request to put a new file at path with localData as content.
contentLength sets the length of the localData that is uploaded.
lastModified sets the date when the file was last modified on the server.
created sets the date when the file was created on the server.
checksum has to follow checksumPattern. It will not be validated by the server.
onProgress can be used to watch the upload progress. Possible values range from 0.0 to 1.0.
See:
- http://www.webdav.org/specs/rfc2518.html#METHOD_PUT for more information.
- putStream for a complete operation executing this request.
Implementation
http.StreamedRequest putStream_Request(
Stream<List<int>> localData,
PathUri path, {
required int contentLength,
DateTime? lastModified,
DateTime? created,
String? checksum,
void Function(double progress)? onProgress,
}) {
final request = http.StreamedRequest('PUT', _constructUri(path));
_addBaseHeaders(request);
_addUploadHeaders(
request,
lastModified: lastModified,
created: created,
contentLength: contentLength,
checksum: checksum,
);
if (onProgress != null) {
var uploaded = 0;
unawaited(
localData.map((chunk) {
uploaded += chunk.length;
onProgress.call(uploaded / contentLength);
return chunk;
}).pipe(request.sink),
);
} else {
unawaited(
localData.pipe(request.sink),
);
}
return request;
}