Я пытаюсь загрузить файлы, хранящиеся в хранилище BLOB-объектов Azure, используя URL-адрес для отдельных BLOB-объектов.
Я загружаю пять BLOB-файлов, и у меня есть отдельные URL-адреса для всех этих BLOB-файлов.
Ниже приведен мой код:
function Download()
{
const fs = require('fs');
const path = require('path');
const https = require('https');
const url = require('url');
var sasToken = '?sv=2019-02-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2019-10-3xxxxxxxZ&sp=rl'
var blobUris = ['https:xxx', 'xxx', 'xxx', 'xxx', 'xxx'];
var i;
for(i=0; i<blobUris.length; i++)
{
var sasUrl = blobUris[i] + sasToken;
var filename=url.parse(blobUris[i]).pathname.split('/').pop();
var filePath = "D:/BLESensor"
var file = fs.createWriteStream(filePath+"/"+filename)
var request = https.get(sasUrl, function(response) {
response.pipe(file);
// Promise.resolve()
// .then(() => file.destroy())
// .catch(console.log)
});
}
}
return Download();
Я получаю нижеошибка при запуске функции:
Error [ERR_STREAM_WRITE_AFTER_END]: write after end
at writeAfterEnd (_stream_writable.js:248:12)
at WriteStream.Writable.write (_stream_writable.js:296:5)
at IncomingMessage.ondata (_stream_readable.js:709:20)
at IncomingMessage.emit (events.js:198:13)
at IncomingMessage.Readable.read (_stream_readable.js:504:10)
at flow (_stream_readable.js:973:34)
at resume_ (_stream_readable.js:954:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
at errorOrDestroy (internal/streams/destroy.js:107:12)
at WriteStream.onerror (_stream_readable.js:733:7)
at WriteStream.emit (events.js:203:15)
at errorOrDestroy (internal/streams/destroy.js:107:12)
at writeAfterEnd (_stream_writable.js:250:3)
at WriteStream.Writable.write (_stream_writable.js:296:5)
[... lines matching original stack trace ...]
at flow (_stream_readable.js:973:34)
Любые предложения будут высоко оценены. Спасибо!