File tree 1 file changed +15
-14
lines changed
1 file changed +15
-14
lines changed Original file line number Diff line number Diff line change @@ -1861,25 +1861,26 @@ Future _saveTarballToFS(Stream<List<int>> data, String filename) async {
1861
1861
if (await targetFile.exists ()) {
1862
1862
await targetFile.delete ();
1863
1863
}
1864
+ late IOSink sink;
1864
1865
try {
1866
+ sink = targetFile.openWrite ();
1865
1867
int receivedBytes = 0 ;
1866
- final stream = data.transform <List <int >>(
1867
- StreamTransformer <List <int >, List <int >>.fromHandlers (
1868
- handleData: (chunk, sink) {
1869
- receivedBytes += chunk.length;
1870
- if (receivedBytes <= UploadSignerService .maxUploadSize) {
1871
- sink.add (chunk);
1872
- } else {
1873
- sink.addError (PackageRejectedException .archiveTooLarge (
1874
- UploadSignerService .maxUploadSize));
1875
- }
1876
- },
1877
- ),
1878
- );
1879
- await stream.pipe (targetFile.openWrite ());
1868
+ await for (final chunk in data) {
1869
+ receivedBytes += chunk.length;
1870
+ if (receivedBytes <= UploadSignerService .maxUploadSize) {
1871
+ sink.add (chunk);
1872
+ } else {
1873
+ await sink.close ();
1874
+ throw PackageRejectedException .archiveTooLarge (
1875
+ UploadSignerService .maxUploadSize);
1876
+ }
1877
+ }
1878
+ await sink.flush ();
1880
1879
} catch (e, st) {
1881
1880
_logger.warning ('An error occurred while streaming tarball to FS.' , e, st);
1882
1881
rethrow ;
1882
+ } finally {
1883
+ await sink.close ();
1883
1884
}
1884
1885
_logger.info ('Finished streaming tarball to FS (elapsed: ${sw .elapsed }).' );
1885
1886
}
You can’t perform that action at this time.
0 commit comments