Я ищу решение для потоковой передачи моего zip-файла, чтобы отправить его в хранилище BLOB-объектов Azure.
На данный момент это то, что у меня есть
async _uploadStreamToBlob(zipFile, fileName) {
const blobService = await this.__self.blobStorage.createBlobService(this.__self.blobStorageConnectionString);
const containerName = this.__self.blobContainerName;
const sourceFilePath = `${path.resolve(zipFile)}`;
const streamSource = fs.createReadStream(sourceFilePath);
return new Promise((resolve, reject) => {
streamSource.pipe(blobService.createWriteStreamToBlockBlob(containerName, fileName, error => {
if (error) {
reject(error);
} else {
resolve({ message: `Upload of '${fileName}' complete` });
}
}));
});
};
Это явно не работает, как я проверял иначе, так как fileStream подает нулевой байт в канал, что приводит к успешной загрузке 0-байтового zipFile в хранилище BLOB-объектов.
Как мне передать поток zipFile на azureWriteStream? Или как мне получить байты из zipFile (сохраняя содержимое)?
Если есть какой-то другой способ достичь этого, я весь в ушах.
Спасибо