File tree Expand file tree Collapse file tree 1 file changed +15
-14
lines changed Expand file tree Collapse file tree 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 {
18611861 if (await targetFile.exists ()) {
18621862 await targetFile.delete ();
18631863 }
1864+ late IOSink sink;
18641865 try {
1866+ sink = targetFile.openWrite ();
18651867 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 ();
18801879 } catch (e, st) {
18811880 _logger.warning ('An error occurred while streaming tarball to FS.' , e, st);
18821881 rethrow ;
1882+ } finally {
1883+ await sink.close ();
18831884 }
18841885 _logger.info ('Finished streaming tarball to FS (elapsed: ${sw .elapsed }).' );
18851886}
You can’t perform that action at this time.
0 commit comments