diff --git a/Extensions/ArtifactEngine/Providers/webProvider.ts b/Extensions/ArtifactEngine/Providers/webProvider.ts index dc6706a49..402a22a73 100644 --- a/Extensions/ArtifactEngine/Providers/webProvider.ts +++ b/Extensions/ArtifactEngine/Providers/webProvider.ts @@ -50,6 +50,7 @@ export class WebProvider implements IArtifactProvider { var downloadSize: number = 0; var contentType: string = artifactItem.contentType; var itemUrl: string = artifactItem.metadata['downloadUrl']; + var zipStream = null; itemUrl = itemUrl.replace(/([^:]\/)\/+/g, "$1"); this.webClient.get(itemUrl, contentType ? { 'Accept': contentType } : undefined).then((res: HttpClientResponse) => { res.message.on('data', (chunk) => { @@ -59,12 +60,17 @@ export class WebProvider implements IArtifactProvider { this.artifactItemStore.updateDownloadSize(artifactItem, downloadSize); }); res.message.on('error', (error) => { + if (zipStream) { + zipStream.destroy(error); + Logger.logMessage(error); + } reject(error); }); if (res.message.headers['content-encoding'] === 'gzip') { try { - resolve(res.message.pipe(zlib.createUnzip())); + zipStream = zlib.createUnzip(); + resolve(res.message.pipe(zipStream)); } catch (err) { reject(err);