diff --git a/dist/restore/index.js b/dist/restore/index.js index 1eca8b8..d090f78 100644 --- a/dist/restore/index.js +++ b/dist/restore/index.js @@ -2326,7 +2326,7 @@ function getContentRange(start, end) { // Content-Range: bytes 0-199/* return `bytes ${start}-${end}/*`; } -function uploadChunk(httpClient, resourceUrl, data, start, end) { +function uploadChunk(httpClient, resourceUrl, openStream, start, end) { return __awaiter(this, void 0, void 0, function* () { core.debug(`Uploading chunk of size ${end - start + @@ -2336,7 +2336,7 @@ function uploadChunk(httpClient, resourceUrl, data, start, end) { "Content-Range": getContentRange(start, end) }; const uploadChunkRequest = () => __awaiter(this, void 0, void 0, function* () { - return yield httpClient.sendStream("PATCH", resourceUrl, data, additionalHeaders); + return yield httpClient.sendStream("PATCH", resourceUrl, openStream(), additionalHeaders); }); const response = yield uploadChunkRequest(); if (isSuccessStatusCode(response.message.statusCode)) { @@ -2379,13 +2379,12 @@ function uploadFile(httpClient, cacheId, archivePath) { const start = offset; const end = offset + chunkSize - 1; offset += MAX_CHUNK_SIZE; - const chunk = fs.createReadStream(archivePath, { + yield uploadChunk(httpClient, resourceUrl, () => fs.createReadStream(archivePath, { fd, start, end, autoClose: false - }); - yield uploadChunk(httpClient, resourceUrl, chunk, start, end); + }), start, end); } }))); } diff --git a/dist/save/index.js b/dist/save/index.js index 4602b16..51ee3e4 100644 --- a/dist/save/index.js +++ b/dist/save/index.js @@ -2326,7 +2326,7 @@ function getContentRange(start, end) { // Content-Range: bytes 0-199/* return `bytes ${start}-${end}/*`; } -function uploadChunk(httpClient, resourceUrl, data, start, end) { +function uploadChunk(httpClient, resourceUrl, openStream, start, end) { return __awaiter(this, void 0, void 0, function* () { core.debug(`Uploading chunk of size ${end - start + @@ -2336,7 +2336,7 @@ function uploadChunk(httpClient, resourceUrl, data, start, end) { "Content-Range": getContentRange(start, end) }; const uploadChunkRequest = () => __awaiter(this, void 0, void 0, function* () { - return yield httpClient.sendStream("PATCH", resourceUrl, data, additionalHeaders); + return yield httpClient.sendStream("PATCH", resourceUrl, openStream(), additionalHeaders); }); const response = yield uploadChunkRequest(); if (isSuccessStatusCode(response.message.statusCode)) { @@ -2379,13 +2379,12 @@ function uploadFile(httpClient, cacheId, archivePath) { const start = offset; const end = offset + chunkSize - 1; offset += MAX_CHUNK_SIZE; - const chunk = fs.createReadStream(archivePath, { + yield uploadChunk(httpClient, resourceUrl, () => fs.createReadStream(archivePath, { fd, start, end, autoClose: false - }); - yield uploadChunk(httpClient, resourceUrl, chunk, start, end); + }), start, end); } }))); } diff --git a/src/cacheHttpClient.ts b/src/cacheHttpClient.ts index c000b7f..78f1251 100644 --- a/src/cacheHttpClient.ts +++ b/src/cacheHttpClient.ts @@ -206,7 +206,7 @@ function getContentRange(start: number, end: number): string { async function uploadChunk( httpClient: HttpClient, resourceUrl: string, - data: NodeJS.ReadableStream, + openStream: () => NodeJS.ReadableStream, start: number, end: number ): Promise { @@ -227,7 +227,7 @@ async function uploadChunk( return await httpClient.sendStream( "PATCH", resourceUrl, - data, + openStream(), additionalHeaders ); }; @@ -290,17 +290,17 @@ async function uploadFile( const start = offset; const end = offset + chunkSize - 1; offset += MAX_CHUNK_SIZE; - const chunk = fs.createReadStream(archivePath, { - fd, - start, - end, - autoClose: false - }); await uploadChunk( httpClient, resourceUrl, - chunk, + () => + fs.createReadStream(archivePath, { + fd, + start, + end, + autoClose: false + }), start, end );